使用版本:Ubuntu 20.04.06 LTS/Ubuntu 18.04.06 LTS MySQL 5.7.42
使用SSH连接上Ubuntu后,我们首先确认一下mysqldump是否安装成功,这个是安装MySQL时自动安装的,同时这个也是备份数据库的命令之一。
1、非Docker安装的MySQL
mysqldump --version
如果返回的是一个版本号,那就代表安装成功,例如:
mysqldump --version
mysqldump Ver 10.13 Distrib 5.7.40, for Linux (x86_64)
如果返回的不是版本号或者是其他错误信息,就需要重新安装,安装命令如下(两个任选其一即可)。
sudo apt install mysql-client-core-8.0
sudo apt install mariadb-client-10.3
安装完成后,再次使用mysqldump --version命令检查是否安装成功。
接下来我们需要创建一个文件夹,这个文件夹用于储存脚本或者是备份的数据库,包括错误的日志也可以存放在里。
sudo mkdir /home/dates # 创建一个home文件夹下的dates文件夹
cd /home/dates # 进入dates文件夹
sudo vim backup_mysql.sh # 使用vim命令创建一个文件,我这里命名为backup_mysql.sh
进入文件后,把下面的文件复制进去
mysql_user="root" # 这个账号需要有备份的权限
mysql_password="123456" # 密码
mysql_database="test" # 需要备份的数据库
backup_file="/home/dates/mysql_backup_$(date +%Y%m%d_%H%M%S).sql" # 备份的数据库保存路径
mysqldump -u $mysql_user -p$mysql_password $mysql_database > $backup_file 2> /home/dates/mysql_backup_error.log # 使用 mysqldump 命令备份数据库,保存报错产生的日志存放
if [ $? -eq 0 ]; then # 检查备份是否成功
echo "Database backup successful. Backup saved to: $backup_file"
else
echo "Error: Database backup failed."
fi
复制进去后,点击esc,然后使用:wq退出保存,退出后,使用下面的命令赋予脚本权限
chmod +x backup_mysql.sh
至此,脚本已经写好了,接下来就是定时执行,使用下面的命令进入定时任务
sudo crontab -e
首次进入会有这样的提示,我们选择1即可,然后回车

进入编辑页面后,划到最下面,然后使用下面的命令加入定时任务,下面的定时任务是每天凌晨02:00执行脚本,命令解释 分钟 小时 * * * 脚本路径
0 2 * * * /home/dates/backup_mysql.sh #命令解释 分钟 小时 * * * 脚本路径
后面在Ubuntu 18.04.06 LTS上测试的时候,发现一直备份不了,就换成了下面的命令,备份成功

备份成功后,错误日志会记录mysqldump: [Warning] Using a password on the command line interface can be insecure.的警告。
安全起见可以不使用明文密码或者不用理会。
1、创建~/.my.cnf文件,命令:
nano ~/.my.cnf
2、在文件中添加账号密码
[client]
user=root
password=123456
3、设置权限,仅允许自己读取写入
chmod 600 ~/.my.cnf
4、保存关闭
Comments NOTHING