Дамп и восстановление базы MySQL: mysqldump для новичков
Зачем делать дамп базы данных вручную?
Перед любым обновлением CMS (WordPress, Bitrix), установкой плагинов или правкой конфигурации сайта необходимо делать резервную копию (дамп) базы данных MySQL/MariaDB. Это гарантирует, что в случае сбоя или повреждения таблиц вы сможете восстановить работу сайта за считанные минуты.
1. Как создать дамп базы данных (Экспорт)
- Создание простого SQL дампа:
mysqldump -u root -p my_database > backup.sqlТерминал запросит пароль от пользователя root в MySQL. После ввода пароля в текущей папке появится файл
backup.sql. - Создание дампа со сжатием на лету (Gzip):
Если база большая, сожмите её сразу в архив для экономии места:mysqldump -u root -p my_database | gzip > backup_$(date +%Y-%m-%d).sql.gz - Дамп сразу ВСЕХ баз данных на сервере:
mysqldump -u root -p --all-databases > all_databases.sql
2. Как восстановить базу данных из дампа (Импорт)
- Создайте пустую базу данных (если она еще не создана):
mysql -u root -p -e "CREATE DATABASE my_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" - Импортируйте SQL файл:
# Из обычного файла .sql: mysql -u root -p my_database < backup.sql # Из сжатого архива .sql.gz: zcat backup.sql.gz | mysql -u root -p my_database
Важно: Обратите внимание на знак стрелочки: знак > используется для выгрузки дампа, а знак < — для заливки дампа обратно в базу.
Частые вопросы (FAQ)
Что делать при ошибке Access denied for user 'root'@'localhost'?
Убедитесь, что вы вводите правильный пароль именно от базы данных MySQL (а не пароль администратора Linux), либо запустите команду через sudo: `sudo mysqldump my_database > backup.sql`.
Как сделать дамп без блокировки работающих таблиц сайта?
Для таблиц движка InnoDB всегда добавляйте флаг `--single-transaction`: `mysqldump --single-transaction -u root -p my_db > backup.sql`.
Как выгрузить только структуру таблиц без самих данных?
Используйте флаг `--no-data`: `mysqldump --no-data -u root -p my_database > schema.sql`.
Как увидеть процесс восстановления большого дампа?
Установите утилиту pv (`sudo apt install pv`) и запустите импорт: `pv backup.sql | mysql -u root -p my_database`.