在ubuntu服务器上使用shell脚本创建mysql备份



我有一个运行在ubuntu服务器上的mysql服务器。在mysql服务器上,我有一个带有一些模式和表的数据库。我每天运行一个带有cron作业的mysql_backup.sh文件来创建mysql数据库的备份。mysql_backup.sh文件的脚本如下。我检查并注意到,当mysql_backup.sh文件运行时,它似乎创建了一个只有几行常规mysql函数描述的文件。我在下面包含了一些mysql_backup.sh文件创建的示例输出。有人看到我做错了什么吗?你能建议如何修改mysql_backup.sh脚本,使其创建数据库的mysql备份吗?

mysql_backup.sh

代码:

#!/bin/bash
mysqldump -u root -p psswd --all-databases > /home/mysql_backups/backup_$(date +%F.%H%M%S).sql

示例电流输出:

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

如果将密码放在带有-p标志的命令行上,则-p和密码之间必须没有空格。后面有空格的-p标志表示它将提示您输入密码,而不是从下一个参数中获取密码。下一个参数将被解释为要备份的模式的名称,但由于您也使用了--all-databases,这会混淆mysqldump。

为了使用法更加清晰,我建议使用这样的长标志:

#!/bin/bash
mysqldump --user=root --password=psswd --all-databases > /home/mysql_backups/backup_$(date +%F.%H%M%S).sql

或者更好的是,根本不要在命令行中放置凭据。将它们放入选项文件中。

最新更新