从终端备份mysql

use*_*215 6 mysql

我已经安排了一个 cron 作业来备份 ubuntu9.10 上的 mysql 数据库。我在 cron 文件中使用了以下条目。

37 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --all-databases > /usr/backup/mysqlbkup/all-databases.sql
Run Code Online (Sandbox Code Playgroud)

它备份所有数据库放在一个名为“all-databases.sql”的文件中。这就是我想要的。但是如果我想恢复单个数据库,我将不得不恢复所有数据库。是否有任何技巧可以将所有 mysql 数据库分别备份到具有数据库名称的目录?

小智 12

我建议你阅读:http : //dev.mysql.com/doc/refman/5.1/en/mysqldump.html

您可以使用以下命令转储不同的数据库: mysqldump [options] --databases DB1 [DB2 DB3...]

你只需要为每个数据库添加一个 cronjob:

37 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --databases database1 > /usr/backup/mysqlbkup/databases1.sql
38 4 * * * root /usr/bin/mysqldump -u root -p<mysql-password> --databases database2  database3 > /usr/backup/mysqlbkup/databases2_3.sql
Run Code Online (Sandbox Code Playgroud)

当然,您可以为所有不同的数据库制作一个 bash 脚本,然后从 crontab 运行该脚本。我也会把它压缩起来。

祝你好运