博客 > 10分钟搞定Linux系统MySQL数据库自动备份
浏览量:1013次评论:0次
作者:锐成网络整理时间:2024-05-15 13:25:59
我们在linux中安装了mysql数据库,想要实现每天自动备份,并且只保留最近7天的备份数据,该怎么做呢?下面将以centos7操作系统、mysql5.7数据库为例,讲下MySQL数据库自动备份的具体操作过程。
一、创建备份脚本
在你的备份目录下新建名为backup.sh的脚本:
#!/bin/bash
# 设置日期格式
now="$(date +'%Y%m%d%H%M%S')"
# MySQL的用户名和密码
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database"
# 备份文件的存储路径
BACKUP_DIR="/path/to/backup/directory"
# 备份命令
mysqldump -u$DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/backup_$now.sql
# 删除过期备份
find $BACKUP_DIR -type f -name "backup_*.sql" -mtime +7 -exec rm {} \;
这个脚本在备份数据库后,使用find命令来查找指定目录下超过7天(mtime +7)的备份文件,并将其删除。
注意,记得替换 your_username, your_password, your_database 和 /path/to/backup/directory 为实际的数据库用户名、密码、数据库名称和备份目录。
二、赋予执行权限
运行 chmod +x backup.sh 以确保脚本有执行权限。
三、授予PROCESS权限
脚本写好了,我们试试能不能用,打开脚本所在的目录,运行 ./backup.sh
结果提示没有权限:
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
解决方法
在centos中用root账号登录mysql
mysql -uroot -p
输入root用户的密码:
然后执行命令:
mysql> GRANT PROCESS ON *.* TO user@localhost;
(注意:这里的user要替换成你自己的数据库用户名)
最后刷新数据库即可:
mysql> flush privileges;
四、设置定时任务
要将backup.sh脚本添加到定时任务(cron job)中,可以按照以下步骤进行操作:
打开终端并使用以下命令编辑 cron 任务:
crontab -e
在打开的文件中,添加以下一行:
0 3 * * * /path/to/backup.sh
在这个例子中, 0 3 * * * 表示在每天凌晨3点执行 /path/to/backup.sh 脚本。确保将 /path/to/backup.sh 替换为实际脚本的路径。
保存文件并关闭编辑器。
添加完毕后,cron 将在每天的指定时间自动执行你的备份脚本。
好了,以上就是Linux系统MySQL数据库自动备份的全部操作过程了,仅供参考。
重要声明:本文来自编程我也会,经授权转载,版权归原作者所有,不代表锐成观点,转载的目的在于传递更多知识和信息。
相关文章推荐
2024-08-20 17:58:16
2024-08-19 17:49:29
2024-08-19 10:23:28
2024-08-16 17:06:33
2024-08-15 17:22:55
热门工具
标签选择
阅读排行
我的评论
还未登录?点击登录