Многие привыкли использовать популярный php-скрипт PHPMyAdmin для создания резервных копий базы данных MySQL для свой веб-сайтов на хостингах. Но данным способом проблематично пользоваться. когда размер базы велик (измеряется сотнями Мб). В этом случае мы можем упереться в ограничения хостинга (например, лимиты на время исполнения php-скриптов). Плюс ко всему - это достаточно медленный способ создания резервной копии (дампа), который значительно нагружает и саму базу данных на время выполнения операции. Есть и специализированные программы (например, утилита Sypex Dumper), но они, как правило, громоздкие и платные, поэтому самым надежным и быстрым способом создания дампа остаются стандартные средства MySQL.
Во-первых, давайте сначала узнаем, что такое дамп базы данных MySQL. Дамп - это полная и точная резервная копия всей базы данных (или ее части, если мы того захотим), представляющая собой обычный текстовый файл, содержащие команды SQL (create table, insert и некоторые другие). Имея такой дамп, мы можем с легкостью восстановить базу данных MySQL на момент времени, когда была создана эта резервная копия.
Т.е. это простой и эффективный инструмент резервирования и восстановления вашей базы данных. Единственное неудобство - вы должны иметь доступ к консоли сервера (например через SSH) для запуска утилиты mysqldump. в настоящее время любой вменяемый хостинг предоставляет данную возможность своим клиентам. Ну а если у Вас собственный выделенный сервер (или виртуальный сервер), то тут минус вовсе и не минус. Вы сами себе root, как говорится!
Создаем дампа MySQL
Создание дампа (sql-файла) базы данных происходит при помощи стандартной утилиты сервера MySQL mysqldump:
mysqldump --user=root --password=root_pass --host=localhost --routines database_name > file_name.sql
Создание дампа базы с одновременной сжатием файла резервной копии (запаковка в gz-архив):
mysqldump --user=root --password=root_pass --routines database_name | gzip -c > file_name.sql.gz
Загружаем дамп в базу MySQL
Созданный на предыдущем этапе дамп (SQL-файл) можно загрузить в базу данных MySQL при помощи команды:
mysql --user=root --password=root_pass --host=localhost --database=database_name < file_name.sql
Это может потребоваться при сбое сервера, когда база данных была повреждена по каким-то причинам. Загрузить заархивированный дамп (gz-архив) в базу данных можно командой:
gunzip -c file_name.sql.gz | mysql --user=root --password=root_pass --host=localhost --database=database_name
В данном примере мы использовали логин root и его пароль для доступа к базе данных под названием database_name. Имя пользователя может быть и другим в каждом конкретном случае, но главное. чтобы этот пользователь обладал привилегиями для доступа к базе и создания дампа.