Импорт и экспорт MySQL баз данных

Ниже приведу примеры импорта и экспорта MySQL баз данных из терминала Linux.

Экспортировать базу данных в файл можно так:

mysqldump -u user -h localhost -p DATABASE_NAME > DATABASE_NAME.sql

Замечу что во время экспорта дампа блокируются таблицы, что может повлиять на приложения которые их используют. Чтобы таблицы не блокировались нужно добавить ключ «—single-transaction», например:

mysqldump --single-transaction -u user -h localhost -p DATABASE_NAME > DATABASE_NAME.sql

Можно экспортировать сразу в архив:

mysqldump -u user -h localhost -p DATABASE_NAME | gzip -c > /dir/DATABASE_NAME_`date +%Y-%m-%d`.sql.gz

Экспортировать несколько баз в один файл и сразу сжать его можно так:

mysqldump -u user -h localhost -p -B DATABASE_NAME1 DATABASE_NAME2 | gzip -c > /dir/DATABASE_NAME_`date +%Y-%m-%d`.sql.gz

Импортировать сжатый файл обратно в базу можно так:

mysql -u user -p DATABASE_NAME < /dir/DATABASE_NAME_`date +%Y-%m-%d`.sql.gz

Распаковать можно так:

gzip -d file.sql.gz

Не сжатый файл аналогично:

mysql -u user -p DATABASE_NAME < /dir/DATABASE_NAME_`date +%Y-%m-%d`.sql

Ключ -p указывает что необходимо ввести пароль во время соединения с MySQL сервером, для того чтобы не вводить его можно прописать в команде (в целях безопасности это не желательно), например так:

mysql -u user -pPASSWORD DATABASE_NAME < DATABASE_NAME.sql

Смотрите также мою статью:
Как увидеть процесс импорта SQL файла?

Оставьте комментарий

Добавить комментарий