在MySQL中,可以使用 mysqldump 命令来定时生成数据库备份文件。你可以将该命令与定时任务工具(如cron)结合使用,这里使用的是1penal第三方管理平台去执行,方便的操作,有兴趣的可以研究一下,以便自动执行备份操作。以下是一个基本的步骤:
-
创建备份脚本: 创建一个Shell脚本,例如
backup_script.sh,其中包含以下内容:#!/bin/bash # MySQL连接信息 DB_USER="your_mysql_user" DB_PASSWORD="your_mysql_password" DB_NAME="your_database_name" # 备份文件保存路径 BACKUP_DIR="/path/to/backup/directory" # 备份文件名 BACKUP_FILE="$BACKUP_DIR/backup_$(date +\%Y\%m\%d\%H\%M\%S).sql" # 使用mysqldump进行备份 mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE # 压缩备份文件(可选) gzip $BACKUP_FILE替换
your_mysql_user、your_mysql_password、your_database_name和/path/to/backup/directory为你的MySQL用户名、密码、数据库名称和备份文件保存路径。此脚本将使用mysqldump导出数据库并保存到指定路径。下面是我的示例,可以#!/bin/bash # 使用 which 命令找到 mysqldump 的路径 MYSQLDUMP_PATH=/opt/mysql-8.0.32/bin/mysqldump # MySQL数据库连接信息 DB_USER="root" DB_PASSWORD="XXXXX" DB_HOST="10.5.2.28" # 或者你的MySQL主机地址 DB_PORT="30306" # MySQL端口,默认是3306 # 备份文件保存目录 BACKUP_DIR="/opt/mysql-backup" # 远程备份服务器信息 REMOTE_SERVER="10.5.2.100" REMOTE_USER="root" REMOTE_DIR="/opt/backup/mysql" REMOTE_PASSWORD="XXXXXX" # 备份文件名(以日期时间命名) DATE=$(date +"%Y%m%d%H%M%S") BACKUP_FILE="$BACKUP_DIR/backup-$DATE.sql" # mysqldump命令执行数据库备份 $MYSQLDUMP_PATH -h $DB_HOST -P $DB_PORT -u$DB_USER -p$DB_PASSWORD --databases account> $BACKUP_FILE # 检查备份是否成功 if [ $? -eq 0 ]; then echo "数据库备份成功,备份文件保存在: $BACKUP_FILE" # 将备份文件传输到远程服务器 sshpass -p $REMOTE_PASSWORD scp $BACKUP_FILE $REMOTE_USER@$REMOTE_SERVER:$REMOTE_DIR # 检查传输是否成功 if [ $? -eq 0 ]; then echo "备份文件成功传输到远程服务器" else echo "备份文件传输到远程服务器失败" fi else echo "数据库备份失败" fi这里文件传输的时候还需要注意sshpass在机器上是否有相关的安装
-
为脚本添加执行权限: 在终端中执行以下命令,为脚本添加执行权限:
-
chmod +x backup_script.sh -
设置定时任务: 使用定时任务工具(如cron)定期运行备份脚本。打开cron表编辑器:
crontab -e添加一行类似于以下的定时任务:
0 2 * * * /path/to/backup_script.sh这将在每天凌晨2点执行备份脚本。你可以根据需要调整cron表达式。
-
我使用的是1panel(也是依托数据库所在服务器的系统的,有兴趣的可以研究一下)


请确保在执行定时任务时使用适当的安全性措施,例如确保脚本中的数据库凭据得到保护。
1122

被折叠的 条评论
为什么被折叠?



