
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.