MySQL mysqldump: создать и восстановить резервную копию

Категория: Postgresql · Язык: Bash · Обновлено:

Создать SQL-дамп одной базы MySQL можно командой mysqldump --single-transaction --databases app_db > app_db.sql. Для InnoDB параметр --single-transaction даёт согласованный снимок без блокировки таблиц на время обычного дампа; для других движков проверьте их поведение отдельно.

Экспортировать базу

Bash
mysqldump --single-transaction --routines --triggers \
  --databases app_db > app_db.sql

Аутентифицируйтесь через безопасный конфигурационный файл клиента или другой одобренный механизм. Не помещайте пароль в командную строку.

Восстановить в тестовую базу

Bash
mysql -e 'CREATE DATABASE app_db_restore'
mysql app_db_restore < app_db.sql

Если файл содержит CREATE DATABASE и USE, как при флаге --databases, передайте его клиенту без имени базы. Проверьте первые строки дампа перед восстановлением.

Параметр

Назначение

--single-transaction

Согласованный снимок для транзакционных таблиц

--routines

Включить процедуры и функции

--triggers

Включить триггеры

--databases

Добавить в дамп создание и выбор базы

Включает ли дамп пользователей MySQL?

Обычный mysqldump базы не является полноценной копией системных аккаунтов сервера. Права и учётные записи переносите отдельно согласно версии MySQL/MariaDB.

Как проверить резервную копию?

Восстановите её на изолированном сервере, проверьте таблицы, процедуры и приложение. Успешное завершение команды создания файла само по себе не подтверждает восстановимость.