怎样在Linux下使用 cron 实现 MySQL 数据库自动备份

2020年2月5日 | 分类: 【待理】

参考:https://www.liujason.com/article/475.html

传统的 mysqldump 备份需要使用通过交互式的输入密码进行,而非交互式的方式直接在命令中加上密码非常地不安全!因为只要有人 ps aux 就能看到密码!

MySQL官方是有给出方法进行安全的非交互式备份。

参考:https://dev.mysql.com/doc/refman/8.0/en/option-files.html

在~/.my.cnf中输入以下内容:

[client]
password="MySQL密码"
user=MySQL用户名

即可在 mysql 命令中直接读取其中的用户名和密码实现非交互式登录,而且非常地安全。

不过有时候 cron 会使用非主目录,因此需要在 mysql 命令中加上一行参数指定配置文件,这一方法同样适用于指定不同的 mysql 身份:

–defaults-file=/folder/custom.cnf

代码实操:

mysqldump --defaults-file=/root/.my.cnf -h mysql.cloudraft-ha-cluster.com cloudraft_whmcs | gzip > "/www/backup/database/cloudraft-whmcs-"`date +"%Y-%m-%d"`".sql.gz"