LINUX.ORG.RU
ФорумAdmin

бэкап/восстановление mysql-базы с foreign key'ями


0

0

Чувствую, что ответ где-то рядом, но не могу найти.

Имеется база данных с кучей innodb-таблиц, связанных foreign key.

Работаю со всем этим безобразием через phpmyadmin (шелл там тоже есть).

Периодически нужно базу бэкапнуть и восстановить на другом компе. Часто - восстанавливать кусками (т.е. некоторые таблицы).

Обычно приходится вначале делать truncate в определенном порядке (foreign key!), потом заливать данные в обратном порядке. И чем больше таблиц, тем больший геморрой.

Есть ли какой-нить наименее геморройный способ для этого?

★★★★★

точно не помню где это, но помойму в мускули есть что-то типа no-verify,
т.е. до окончания операции субд не проверяет целостность данных.

chocholl ★★
()

да, я восстанавливал. Там какая-то деректива для mysql, после чего она не чекает ключи.

вроде так.

AndreyKl ★★★★★
()

в консоли mysql (это если mysql -u username -p'password' -h localhostOrAnotherHostName ):

use mydb;
SET FOREIGN_KEY_CHECKS=0;
source /path/to/file.sql;

вроде так. Нашёл в гугле, сам не пробовал.
ЗЫ. Сам вроде как то по другому делал, но на вскидку не нашёл.

AndreyKl ★★★★★
()
Ответ на: комментарий от AndreyKl

Ага, такая директива есть, только описания маловато... Не совсем понятно, что будет с данными, если вдруг на момент SET FOREIGN_KEY_CHECK=1; данные не будут подпадать под constraints... Ладно, бум экспериментировать...

Спасибо.

AngryElf ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.