SSH mysqldump mysql - Создание копии Базы Данных

08.01.2015

Бывает необходимо создать резервную копию базы банных сервера.

Это можно сделать с помощью phpMyAdmin, но он долго работает с БД большого размера и затрудняет перенос базы на другой сервер.

Для быстрого бекапа базы данных существует утилита mysqldump в SSH, в общем виде выглядит так:

# mysqldump –uUSER -pPASSWORD -hSERVER DataBase > DataBaseFile.sql

где:

USER — это имя пользователя базы данных;

PASSWORD — пароль пользователя;

SERVER — это имя (или ip-адрес) сервера базы данных;

DataBase — наименование базы данных;

DataBaseFile.sql — имя файла с дампом базы данных.


Также утилита mysqldump имеет много опций и ключей:

 

# mysqldump -–all-databases -uUSER -pPASSWORD > /path/mysql-db-server.sql

Команда с опцией -–all-databases сохраняет все базы данных на MySQL-сервере.

 

# mysqldump -uUSER -pPASSWORD DATABASE table1 table2 table3 > /path/ DATABASE_t1-t2-t3.sql

Сохраняет таблицы table1, table2, table3, из базы DATABASE в файле DATABASE_t1-t2-t3.sql.

 

# mysqldump --no-data -uUSER -pPASSWORD DATABASE > /path/DATABASE-schema.sql

Указав опцию --no-data команда сохранит структуру таблиц (без данных) в файле DATABASE_schema.sql.

 

# mysqldump --add-drop-table -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql

Опция --add-drop-table добавит команду DROP TABLE (удаление таблицы) перед созданием таблиц.

 

# mysqldump --databases -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql

Опция --databases добавит команду CREATE DATABASE перед созданием базы данных. Это позволяет не создавать и не задавать базу данных при восстановлении.

 

# mysqldump -uUSER –pPASSWORD –h192.168.0.1 DATABASE > /path/DATABASE.sql

Команда сделает бэкап базы DATABASE с сервера с ip-адресом 192.168.0.1

 

# mysqldump --max_allowed_packet=8M -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Опция --max_allowed_packet=8M принудительно изменит размер пакета считываемых данных в оперативную память размером в 8 мегабайт.

 

# mysqldump --quick -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Опция --quick заставляет команду записывать данные непосредственно на диск.

 

# mysqldump --default-character-set=cp1251 -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Принудительно указываем кодировку cp1251.

 

# mysqldump -uUSER –pPASSWORD DATABASE | gzip -c /path/DATABASE.sql.gz

Этой последовательностью получаем архивированный бэкап с помощью утилиты gzip (для последующего восстановления необходимо будет предварительно извлечь из архива).

Для восстановления базы данных из бэкапа выполняем команду:

 

# mysql -uUSER –pPASSWORD DATABASE < /path/DATABASE.sql

Рейтинг: