Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Самый правильный способ переноса баз
 
 автор: Eugene77   (17.02.2012 в 16:17)   письмо автору
 
 

База в MyISAM, но таблицы в ней все InnoDB с внешними ключами.
Сделал так, потому что считал, что самое удобное копировать базу простым копированием директории. Не помогло...

Представления перестают работать при таком копировании.

Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для представлений функции (созданные мной) отсутствуют.

Можно, конечно, попытаться вручную отредактировать порядок следования запросов в дампе,
но в нём много всякой всячины - легко запутаться, а мне, похоже, часто этот дамп придётся с места на место таскать.

В общем, существует ли надёжный способ переноса базы между двумя домашними компьютерами?

  Ответить  
 
 автор: cheops   (17.02.2012 в 16:24)   письмо автору
 
   для: Eugene77   (17.02.2012 в 16:17)
 

>База в MyISAM, но таблицы в ней все InnoDB с внешними ключами.
Параметры базы данных ни на что не влияют, кроме того, что если вы не укажите тип таблицы при создании её при помощи CREATE TABLE, будет назначен тип, прописанный в базе данных по умолчанию.

>Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для
>представлений функции (созданные мной) отсутствуют.
Довольно странно, а .frm в каталоге базы данных для представления имеются?

>В общем, существует ли надёжный способ переноса базы между двумя домашними
>компьютерами?
SQL-дамп.

  Ответить  
 
 автор: Eugene77   (17.02.2012 в 16:30)   письмо автору
 
   для: cheops   (17.02.2012 в 16:24)
 

>>Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для
>>представлений функции (созданные мной) отсутствуют.
>Довольно странно, а .frm в каталоге базы данных для представления имеются?

Определения функций стоят после определения представлений в дампе. Только и всего...
Но при большом дампе - проблема.

>>В общем, существует ли надёжный способ переноса базы между двумя домашними
>>компьютерами?
>SQL-дамп.

А РМА не через утилиту делает?

  Ответить  
 
 автор: cheops   (17.02.2012 в 16:43)   письмо автору
 
   для: Eugene77   (17.02.2012 в 16:30)
 

>>>Из дампа РМА тоже не могу востановить: представления не создаются так как необходимые для
>>>представлений функции (созданные мной) отсутствуют.
>>Довольно странно, а .frm в каталоге базы данных для представления имеются?
>Определения функций стоят после определения представлений в дампе. Только и всего...
>Но при большом дампе - проблема.
Дело в том, что все хранимые процедуры хранятся в системной таблице mysql.proc, она имеет тип MyISAM, её можно физически перемещать. Кроме того, вы можете создать отдельный дамп для хранимых процедур при помощи ключа -R (--routines) утилиты mysqldump.

>>В общем, существует ли надёжный способ переноса базы между двумя домашними
>>>компьютерами?
>>SQL-дамп.
>А РМА не через утилиту делает?
Нет, там собственный код.

  Ответить  
 
 автор: Eugene77   (17.02.2012 в 16:57)   письмо автору
 
   для: cheops   (17.02.2012 в 16:43)
 

>Дело в том, что все хранимые процедуры хранятся в системной таблице mysql.proc, она имеет тип MyISAM, её можно физически перемещать. Кроме того, вы можете создать отдельный дамп для хранимых процедур при помощи ключа -R (--routines) утилиты mysqldump.

Вот-вот там указывается какой базе принадлежит процедура (в моём случае только функции)
При восстановлении из дампа в другую базу - не работает.

Кроме того, вы можете создать отдельный дамп для хранимых процедур при помощи ключа -R (--routines) утилиты mysqldump.

А вы не можете навскидку написать какую строку надо скормить mysqldump, чтобы она ровно одну базу сохранила, но так, чтобы :
1) Функции оказались перед представлениями
2) Представления после таблиц
3) Связи таблиц в конце

  Ответить  
 
 автор: cheops   (17.02.2012 в 17:24)   письмо автору
 
   для: Eugene77   (17.02.2012 в 16:57)
 

В одну строку не получится, только если вы функции будете называть на a, представления на b, а таблицы на остальные буквы алфавита. Тогда дамп должен выстроиться так, как вам нужно.

  Ответить  
 
 автор: Eugene77   (18.02.2012 в 07:08)   письмо автору
 
   для: cheops   (17.02.2012 в 17:24)
 

>В одну строку не получится, только если вы функции будете называть на a, представления на b, а таблицы на остальные буквы алфавита. Тогда дамп должен выстроиться так, как вам нужно.
Ну, а что?
Буду перед названием функции добавлять 2 подчёркивания,
перед названием представления - одно.

Это мне подходит.
Что-то надо ещё писать, чтобы по алфавиту выстроить или просто mysqldump и название базы?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования