Как сделать бекап базы MySQL и восстановить его с помощью консоли

MySQL консоль

Если вы храните что-нибудь в базе данных MySQL и не хотите ничего потерять, то важно делать регулярные бекапы вашего сайта. В этой статье вы можете прочитать про то как сделать бекап MySQL базы и восстановить его через консоль. Вы также можете использовать эти команды, чтобы перенести данные с одного сервера на другой:

Создание бекапа из командной строки, используя mysqldump

Создание бекапа из командной строки, используя mysqldump

Если у вас есть SSH доступ на сервер, вы можете использовать консоль, чтобы сделать бекап. Для этого вам потребуется использовать команду mysqldump. Эта команда соединяется с MySQL сервером и создает файл с SQL дампом базы. Дамп файл содержит SQL запросы, которые необходимы, чтобы создать полную копию вашей базы данных. Вот синтакс этой комманды:

$ mysqldump -u [uname] -p[pass] [dbname] > [backupfile.sql]

[uname] - Имя пользователя вашего сервера MySQL
[pass] - Пароль пользователя вашего сервера MySQL
[dbname] - Имя базы данных с которой вы делаете дамп
[backupfile.sql] - Имя файла куда вы хотите положить дамп, желательно с расширением .sql, чтобы было понятно какой это файл.

Например, чтобы сделать бекап для пользователя root и базы данных drupalbook:

$ mysqldump -u root -p drupalbook > backup170131.sql

Сразу хочу заметить два момента, пароль можно указывать сразу в аргументе -p, если вы делаете это локально, например, mysql -u root -proot. Но делать это на живом сервере это не стоит, потому что пароль будет сохраняться в логе команд history. Второй момент, когда делаете бекап, то указывайте в имени файла дату, тогда вам проще будет знать за какое время это бекап.

Создание файла бекапа со сжатием

Файлы SQL занимают очень много места, но так как это обычный текст то он очень хорошо сжимается. Обычно файлы SQL сжимаются в 25-30 раз. Для сжатия в командной строке мы будем использовать консольное приложение gzip.

$ mysqldump -u [uname] -p[pass] [dbname] | gzip -9 > [backupfile.sql.gz]

Заметьте, что расширения дампа теперь .sql.gz. Это важно потому что например PhpMyAdmin именно по этому расширению понимает формат дампа. Опять же повторюсь, что для удобства пишите дату в название файла дампа:

$ mysqldump -u root -p drupalbook | gzip -9 > drupalbook170131.sql.gz

-9 в этой команде обозначает степень сжатия.

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

Чтобы восстановить базу данных из SQL файла используйте эту команду mysql:

$ mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Для того чтобы восстановить базу данных из архива, используйте эту команду mysql, совместно с командой gunzip:

$ gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]

Также как и при создании дампа, здесь можно не указывать пароль прямо в команде,  а писать просто -p, чтобы ввести пароль отдельно:

$ gunzip < drupalbook170131.sql.gz | mysql -u root -p drupalbook

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

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.