Перейти к основному контенту

MySQL-копирование

Несмотря на надёжность современных компьютеров и серверов, время от времени случаются поломки. А значит пользователи постоянно рискуют потерять все свои данные. Чтобы решить проблему потери информации, специалисты рекомендуют делать резервное копирование MySQL.

Резервное копирование

Резервное копирование, или бэкап ― это создание копии файлов и папок на дополнительном носителе информации. Резервное копирование позволяет восстанавливать повреждённые данные на основном носителе. В этой статье мы расскажем, как сделать бэкап MySQL.

Где можно хранить резервные копии

Резервное копирование 2

Бэкап можно хранить на любом внешнем носителе. Желательно, чтобы этот носитель не был подключен к основному устройству постоянно.

  1. Внешний жёсткий диск. Он представляет собой тот же жёсткий диск, что и в компьютере, но подключается с помощью USB-разъема. Это надёжное устройство для хранения информации, однако его нужно беречь от падений.
  2. Флешка. Флешка менее надёжна, чем жёсткий диск, так как её легче сломать или потерять. Всё-таки в первую очередь она создана для переноса данных. Однако её большими плюсами являются маленькие размеры и простота использования.
  3. Облачные хранилища. Это популярный метод хранения информации. Плюсами облачного хранения копий являются:
  • Автоматическое копирование. Можно настроить сохранение данных, например, раз в сутки или раз в неделю.
  • Экономия. Облачное хранение часто обходится дешевле, чем материальные носители, и не требует обслуживания со стороны пользователя.
  • Безопасность. Современные облачные технологии обеспечивают высокую информационную безопасность за счёт шифрования данных.

Способы резервного копирования MySQL

Способов сделать копирование базы данных несколько:

  1. Можно временно выключить MySQL-сервер и скопировать файлы из папки /var/lib/mysql/db/. Само копирование занимает мало времени, однако восстановление сервера может занять часы. Копировать базу нужно регулярно, а постоянное отключение нехорошо для сервиса.

  2. Можно использовать снэпшоты. Для них не нужно останавливать MySQL-сервер. Однако создание снимка может повлиять на работоспособность БД.

  3. Для копирования MySQL можно использовать утилиту mysqldump, которая была создана Игорем Романенко. С её помощью создаётся дамп содержимого базы данных. Дамп ― это файл с копией БД. Файл состоит из SQL-команд.

Плюсы дампа:

  • прост в использовании,
  • лучше переносятся между версиями MySQL,
  • можно копировать как все имеющиеся БД, так и отдельно выделенные таблицы,
  • совместим практически с любой СУБД (не только MySQL),
  • можно выгружать данные в форматах CSV и XML.

Недостатки использования дампов:

  • медленное создание копии БД (особенно для тяжёлых файлов),
  • требует много дискового пространства.

Третий вариант имеет много плюсов. Ниже мы расскажем, как сделать резервную копию MySQL с помощью утилиты mysqldump.

Как создать бекап базы данных MySQL

Синтаксис команды для создания резервной копии:

mysqldump [опции] [имя_базы] > [путь_и_имя_файла].sql

В результате выполнения будет создан файл .sql.

Для примера создадим бекап базы данных db_name и сохраним файл db_backup.sql в корневой директории. Для этого используем команду:

mysqldump -uroot -p db_name > /db_backup.sql

Даже если команда была выполнена успешно, вывода на экран не будет. Результат сразу запишется в файл:

Как создать бекап базы данных MySQL MySQL backup database

Как создать бэкап отдельной таблицы

При помощи mysqldump можно создать резервную копию отдельной таблицы. Для этого нужно добавить имя таблицы после названия БД:

mysqldump -uroot -p db_name table_name > /db_table_backup.sql

В результате резервная копия таблицы table_name базы данных db_test будет сохранена в файле db_table_backup.sql.

Посмотреть список таблиц в БД можно при помощи команды:

mysqlshow -uroot -p table_name

Как создать бэкап отдельной таблицы

Как сохранить копию нескольких баз данных

Чтобы сохранить копию нескольких баз данных, используйте ключ --databases, а после него через пробел введите названия БД. У вас должно получиться подобное:

mysqldump --databases db_1 db_2 > db_backup.sql

Чтобы сделать бэкап всех баз, используйте ключ --all-databases:

mysqldump --all-databases > db_backup.sql

Как создать новую базу данных MySQL

Чтобы развернуть бэкап, нужна существующая БД. Если её нет, можно создать новую. Для этого:

  1. 1.

    Подключитесь к серверу MySQL:

    mysql -uroot -p
  2. 2.

    Создайте базу данных:

    CREATE DATABASE db_name;

    Вместо db_name введите нужное имя.

Готово, вы создали новую БД, теперь вы можете развернуть на ней резервную копию.

Как восстановить базу данных MySQL из резервной копии

Для восстановления резервной копии используется утилита mysql. Синтаксис:

mysql [опции] [имя_базы] < [путь_и_имя_файла].sql

Например, восстановим базу данных db_name из файла резервной копии db_backup.sql, которая хранится в корневом каталоге. Для этого используем команду:

mysql -uroot -p db_name < /db_backup.sql

Если БД с таким названием не существует, вы увидите ошибку:

ERROR 1049 (42000): Unknown database «db_name':

Как восстановить базу данных MySQL из резервной копии

Посмотреть список баз данных можно при помощи команды:

mysqlshow -uroot -p
Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 1