Несмотря на надёжность современных компьютеров и серверов, время от времени случаются поломки. А значит пользователи постоянно рискуют потерять все свои данные. Чтобы решить проблему потери информации, специалисты рекомендуют делать резервное копирование MySQL.
Резервное копирование, или бэкап ― это создание копии файлов и папок на дополнительном носителе информации. Резервное копирование позволяет восстанавливать повреждённые данные на основном носителе. В этой статье мы расскажем, как сделать бэкап MySQL.
Где можно хранить резервные копии
Бэкап можно хранить на любом внешнем носителе. Желательно, чтобы этот носитель не был подключен к основному устройству постоянно.
- 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 -u root -p db_name > /db_backup.sql
Даже если команда была выполнена успешно, вывода на экран не будет. Результат сразу запишется в файл:
MySQL backup database
Как создать бэкап отдельной таблицы
При помощи mysqldump можно создать резервную копию отдельной таблицы. Для этого нужно добавить имя таблицы после названия БД:
mysqldump -u root -p db_name table_name > /db_table_backup.sql
В результате резервная копия таблицы table_name базы данных db_test будет сохранена в файле db_table_backup.sql.
Посмотреть список таблиц в БД можно при помощи команды:
mysqlshow -u root -p table_name
Как сохранить копию нескольких баз данных
Чтобы сохранить копию нескольких баз данных, используйте ключ --databases, а после него через пробел введите названия БД. У вас должно получиться подобное:
mysqldump --databases db_1 db_2 > db_backup.sql
Чтобы сделать бэкап всех баз, используйте ключ --all-databases:
mysqldump --all-databases > db_backup.sql
Как создать новую базу данных MySQL
Чтобы развернуть бэкап, нужна существующая БД. Если её нет, можно создать новую. Для этого:
-
1
Подключитесь к серверу MySQL:
mysql -u root -p
-
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':
Посмотреть список баз данных можно при помощи команды:
mysqlshow -u root -p
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊