2. 利用mysql自带备份工具mysqldump 对mysql数据库进行定期备份和压缩操作,每天凌晨2:30开始自动备份和压缩数据,备份文件名为:完整时间_mysql.sql.gz(例如20230203122343_mysql.sql.gz),将备份文件保存到/opt/mysql.back目录下,每次执行备份操作后删除30天之前的所有备份文件;
时间: 2024-04-12 18:30:11 浏览: 136
要实现定期备份和压缩MySQL数据库,可以使用mysql自带的备份工具mysqldump结合Linux的定时任务工具crontab来完成。以下是步骤:
1. 创建备份脚本:
在终端中输入以下命令创建一个名为backup_mysql.sh的脚本文件,并使用文本编辑器打开它。
```
touch backup_mysql.sh
nano backup_mysql.sh
```
将以下内容复制到脚本文件中:
```bash
#!/bin/bash
# 备份相关参数
backup_dir="/opt/mysql.back"
backup_file="$backup_dir/$(date +%Y%m%d%H%M%S)_mysql.sql.gz"
# MySQL连接参数
mysql_user="your_username"
mysql_password="your_password"
mysql_database="your_database"
# 创建备份目录
mkdir -p $backup_dir
# 备份数据库
mysqldump -u $mysql_user -p$mysql_password $mysql_database | gzip > $backup_file
# 删除30天之前的备份文件
find $backup_dir -name "*_mysql.sql.gz" -mtime +30 -exec rm {} \;
```
请替换以下参数:
- 将"your_username"替换为你的MySQL用户名。
- 将"your_password"替换为你的MySQL密码。
- 将"your_database"替换为你要备份的数据库名。
保存并关闭脚本文件。
2. 设置脚本文件权限:
在终端中输入以下命令,将脚本文件设置为可执行权限:
```
chmod +x backup_mysql.sh
```
3. 设置定时任务:
在终端中输入以下命令,编辑crontab文件:
```
crontab -e
```
在打开的文件中,添加以下行来设置每天凌晨2:30执行备份操作:
```
30 2 * * * /path/to/backup_mysql.sh
```
请将"/path/to/backup_mysql.sh"替换为backup_mysql.sh脚本文件的实际路径。
保存并关闭文件。
现在,每天凌晨2:30,脚本将自动备份MySQL数据库,并将备份文件压缩为指定的格式。此外,它还会删除30天之前的旧备份文件。
请注意,为了安全起见,确保只有授权用户可以访问backup_mysql.sh脚本文件和/opt/mysql.back目录。
阅读全文