Олег Букатчук

Как сделать backup/restore базы данных MySQL

Авг
26

Мне, как инженеру DevOps приходится часто иметь дело с различными СУБД в том числе и с MySQL. Время от времени возникает потребность в перемещении баз данных MySQL с сервера на сервер, но не всегда на сервере есть Apache/Nginx и PHPMyAdmin, чтобы выполнить процедуру переноса через удобный веб-интерфейс.

Копирование базы данных MySQL

$ sudo mysqldump -u Имя_Пользователя -pПароль Имя_БД > backup.sql
  • Имя_Пользователя — является имя пользователя для базы данных;
  • Пароль — это пароль для вашей базы данных (Примечание: нет пространство(пробела) между -р и Пароль);
  • Имя_БД — является имя базы данных;
  • backup.sql — является имя файла для вашей резервной копии базы данных.

Копирование базы данных MySQL со сжатием

Если ваша база данных MySQL очень большая, вы можете сжать используя mysqldump. Просто используя команду MySQL для резервного копирования, что приведена ниже и перенаправляя вывод в утилиту Gzip, мы получаем результат в виде GZIP файла:

$ sudo mysqldump -u Имя_Пользователя -pПароль Имя_БД | gzip -9 > backup.sql.gz

Восстановление базы данных MySQL

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

$ sudo mysql -u Имя_Пользователя -pПароль Имя_БД < backup.sql

Восстановление сжатых баз данных MySQL

Для того^ чтобы восстановить сжатую БД от mysql нужно выполнить следующую команду:

$ sudo gunzip < backup.sql.gz | mysql -u Имя_Пользователя -pПароль Имя_БД

Ну вот и всё — тема раскрыта.