是否可以通过命令行完全备份 mysql 数据库服务器?

是否可以通过命令行完全备份 mysql 数据库服务器?
$ mysqldump -h localhost -u username -p database_name > backup_db.sql

我可以使用上面的行,但它只是针对服务器中的一个数据库,我可以将所有数据库的完整备份到一个备份文件中吗?

或者是否存在一些命令可以序列化这个过程?

类似下面的内容(我添加了-all,这很可能是错误的):

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

谢谢。

答案1

使用 --all-databases 选项,它会导致所有数据库中的所有表都被转储:

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

答案2

此外,我建议设置一个 my.cnf 文件,以便您的密码在进程列表中不可见。 看一下这个. 它将帮助您并防止您的 SQL DB 被任何可能有权访问您系统的人入侵。

答案3

我建议使用 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

相关内容