Ниже приведу примеры импорта и экспорта 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 файла?