Начнем с простейшей команды:
Иногда дамп бывает сделан так, что сначала создается таблица, в которой имеется foreign key на еще не созданную. В этом случае, процедура импорта будет прервана с сообщением вида:
Что же делать? Специально для такого случая имеется системная переменная
После этого импорт отлично отрабатывает.
Чтобы два раза не вставать с дивана: для просмотра больших дампов можно использовать утилиту
Например, при импорте вышеуказанного дампа вам вывелось сообщение вида.
Допустим, вы не знаете причину и хотите посмотреть, что же там такого на строке 19242. Конечно, можно открыть файл и медленно и печально листать до нужной строки. А можно сделать так:
Данная команда покажет вам строки с 19240 по 19245, а поиск этих строк в файле и последующий вывод будут осуществлены очень быстро.
> mysql -u user -p databasename < dump.sql
Иногда дамп бывает сделан так, что сначала создается таблица, в которой имеется foreign key на еще не созданную. В этом случае, процедура импорта будет прервана с сообщением вида:
ERROR 1215 (HY000) at line 42: Cannot add foreign key constraint
Что же делать? Специально для такого случая имеется системная переменная
FOREIGN_KEY_CHECKS
. Оптимальным способом ее использования будет следующий:
> mysql -u user -p --init-command="SET SESSION FOREIGN_KEY_CHECKS=0;" databasename < dump.sql
После этого импорт отлично отрабатывает.
Чтобы два раза не вставать с дивана: для просмотра больших дампов можно использовать утилиту
sed
.Например, при импорте вышеуказанного дампа вам вывелось сообщение вида.
ERROR 1215 (HY000) at line 19242: Cannot add foreign key constraint
Допустим, вы не знаете причину и хотите посмотреть, что же там такого на строке 19242. Конечно, можно открыть файл и медленно и печально листать до нужной строки. А можно сделать так:
sed -n '19240,19245p; 19246q' dump.sql
Данная команда покажет вам строки с 19240 по 19245, а поиск этих строк в файле и последующий вывод будут осуществлены очень быстро.