Backup и восстановление MySQL (MariaDB) базы данных с mysqldump

Backup и восстановление MySQL (MariaDB) базы данных с mysqldump

Большую часть времени, вы можете легко управлять своей базы данных с веб-инструментов, например через PHPMyAdmin. К сожалению, бывают случаи, когда необходимо восстановить большое количество данных. Это не может быть достигнуто через PHPMyAdmin из-за пределов РНР (либо максимальное время работы скрипта не позволяет или невозможно загрузить большой архив с БД).

Использование MySQL с командной строки

Если вы используете MySQL на Linux или MS Windows, вы можете использовать командную строку для выполнения большинства задач. Если вы используете MS Windows, убедитесь, что путь к исполняемым файлам командной строки входит в системном пути. В противном случае, вам придется ввести полный путь к каждой команды.

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

MySQL предоставляет утилиту под названием «mysqldump.» В принципе, этот инструмент создает плоский файл, содержащий инструкции MySQL, чтобы восстановить базу данных. Вот несколько примеров использования  mysqldump:

Создание простого резервной копии базы данных

# mysqldump -u username -p DB_name > your_file.sql

Это создает файл, содержащий все операторы MySQL для создания таблиц и восстановление данных в существующую базу данных. Если целевая база данных содержит таблицы с одинаковыми именами, они будут перезаписаны. Если вы хотите существующие таблицы, которые будут отброшены и заново использованы, то используйте опцию » add-drop-table»:

# mysqldump --add-drop-table -u username -p DB_name > your_file.sql

Кроме того, вы можете выбрать это в качестве альтернативы:

# mysqldump --add-drop-databases -u username -p DB_name > your_file.sql

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

Вы можете сделать копию нескольких баз данных в один файл, используя опцию базы данных:

# mysqldump -u username -p --databases your_database1 your_database2 your_database3 > your_file.sql

Создание резервной копии всех баз данных может быть достигнуто с помощью опции все-базы данных:

# mysqldump -u username -p --all-databases > your_file.sql

 Резервное копирование таблиц InnoDB

Если в базе данных есть столбцы InnoDB, вам нужно будет отключить ссылочную целостность при восстановлении данных. К сожалению, это не может быть сделано с помощью утилиты mysqldump. Для этого нужно открыть сам файл и добавить:

SET FOREIGN_KEY_CHECKS = 0;
… И добавить следующее в конец файла:
SET FOREIGN_KEY_CHECKS = 1;

Сжатие MySQL Dump файлов

Если вы используете mysqldump в оболочке Linux, вы можете сжать через Gzip, чтобы сжать файл дампа (при условии, что вы установили gzip):

# mysqldump -u username -p your_database_name | gzip -c your_file.sql.gz

Восстановление из резервной копии MySQL

Чтобы восстановить резервную копию, созданную с mysqldump, вам нужно будет использовать команду MySQL. Если ваш файл дампа MySQL не содержит «Создать базу данных» о, вы можете использовать следующую команду:

# mysql -u username -p your_database_name < your_file.sql

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

# mysql -u username -p < your_file.sql

Более подробную информацию о mysqldumpможно найти на официальном сайте MySQL.

 

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.