Дамп базы MySQL
Такс, бывают моменты, когда…
Нужно, к примеру, перенести базу с тестового сервера на рабочий, но вот незадача, объем файла превышает дозволенный лимит загружаемого в phpMyadmin. Но чудо! У нас есть доступ к консоли (SSH) и к нам на выручку спешит утилита mysqldump. Итак начнем.
Создание дампа
Дамп нужной базы
mysqldump -uroot -h192.168.1.1 -p database > database.sql
Дамп нескольких баз
mysqldump -uroot -h192.168.1.1 -p -B database1 database2 database3 > databases.sql
Дамп всех баз
mysqldump -uroot -h192.168.1.1 -p -A > all-databases.sql
Дамп в архив
mysqldump -uroot -h192.168.1.1 -p database | gzip > database.sql.gz
Дамп структуры без данных
mysqldump -uroot -h192.168.1.1 -p --no-data database > database.sql
где:
-u
— имя пользователя;
-h
— удаленный хост (для локального хоста можно опустить этот параметр либо localhost);
-p
— запросить пароль;
-B
— параметр позволяет указать имена нескольких баз данных, для которых необходимо создать дамп;
--all-databases
— параметр означает, что нужно сохранить все таблицы из всех баз данных, которые находятся на данном сервере;
--no-data
— создание дампа структуры базы данных без самих данных;
database
— имя базы данных;
database.sql
— файл для дампа.
Развернуть/залить дамп
mysql -uroot -h192.168.1.1 -p database < database.sql
Развернуть из архива
zcat database.sql.gz | mysql -uroot -h192.168.1.1 -p database
Используя mysql-console
mysql mysql> use database; mysql> source database.sql