Назад | Перейти на главную страницу

Можно ли сделать полную резервную копию сервера базы данных mysql из командной строки?

$ mysqldump -h localhost -u username -p database_name > backup_db.sql

Я могу использовать строку выше, но это только для одного db на сервере. Могу ли я сделать полную резервную копию всех баз данных в один файл резервной копии?

Или есть какая-то команда, которая сериализует этот процесс?

что-то вроде ниже (я добавил -all, что, скорее всего, неверно):

$ mysqldump -u username -h localhost -p -all | gzip -9 > backup_db.sql.gz

Спасибо.

Используйте параметр --all-databases, он вызывает дамп всех таблиц во всех базах данных:

mysqldump -u username -h localhost -p --all-databases > all_databases.sql

Кроме того, я бы предложил настроить файл my.cnf, чтобы ваш пароль не отображался в списке процессов. Проверь это. Это поможет вам и предотвратит взлом вашей базы данных SQL кем-либо, кто может иметь доступ к вашей системе.

Я бы предложил снимки LVM для резервных копий «всех баз данных», поскольку время блокировки, вероятно, будет большим. Однако отображаемое отсутствие исследования строки использования или "man mysql<^M>/all"заставляет меня думать, что такое предложение может быть безответственным.

~$ mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help