Пропустить навигацию.

mysqldump: делаем бэкап базы данных и потом востанавливаем БД из бэкапа

Для большинства не больших баз данных идеально будет работать команда mysqldump:
mysqldump -uroot -p database > database.sql

Если требуется указать удалённый хост то, добавим -h192.168.1.10 или --host=192.168.1.10, где 192.168.1.10 — IP удалённого хоста. Для локального этот параметр можно упустить.

-uroot (или --user=root) — указываем пользователя.
-p или --password

database<.code> — имя базы данных для бэкапа, а database.sql – имя файла для бэкапа. Если в один файл вы хотите включить несколько баз данных, используйте ключ -B.

Если же вам нужно сделать бэкап всех доступных баз данных, то используйте ключ -A (или --all-databases):

mysqldump -uroot -p -A > all-databases.sql

Полезные ключи для mysqldump

--complete-insert, -c – Используется полная форма оператора INSERT (с именами столбцов).

--create-options – Добавляет дополнительную информацию в операторы CREATE TABLE. Это может быть тип таблицы, начальное значение AUTO_INCREMENT и другие параметры.

--disable-keys, -K – Для каждой таблицы, окружает оператор INSERT выражениями /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; и /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; в выводе результата дампа. Это ускорит загрузку данных на сервер для таблиц типа MyISAM, так как индексы создаются после внесения всех данных.

--extended-insert, -e – Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода).

Остальные ключи есть в man.

Восстановление базы данных из бэкапа

Мне больше нравится способ развёртывания бэкапа через mysql-консоль, так как по умолчанию отображается информация о выполенных командах и можно увидеть ошибку (если она есть):

mysql -uroot -p
mysql> use database;
mysql> source database.sql

Так же можно и таким сопосбом:
mysql -uroot -p database < database.sql