前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >10分钟搞定Linux系统MySQL数据库自动备份

10分钟搞定Linux系统MySQL数据库自动备份

作者头像
zhanyd
发布2024-04-10 10:34:19
3180
发布2024-04-10 10:34:19
举报
文章被收录于专栏:编程我也会

我们在linux中安装了mysql数据库,我们想每天自动备份,并且只保留最近7天的备份数据,该怎么做呢?

下面我以centos7操作系统、mysql5.7数据库为例,讲下具体的操作过程。

创建备份脚本

在你的备份目录下新建名为backup.sh的脚本:

代码语言:javascript
复制
#!/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

结果提示没有权限:

代码语言:javascript
复制
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

代码语言:javascript
复制
mysql -uroot -p

输入root用户的密码:

然后执行命令:

代码语言:javascript
复制
mysql> GRANT PROCESS ON *.* TO user@localhost;

(注意:这里的user要替换成你自己的数据库用户名)

最后刷新数据库即可:

代码语言:javascript
复制
mysql> flush privileges;

设置定时任务

要将backup.sh脚本添加到定时任务(cron job)中,可以按照以下步骤进行操作:

打开终端并使用以下命令编辑 cron 任务:

代码语言:javascript
复制
crontab -e

在打开的文件中,添加以下一行:

代码语言:javascript
复制
0 3 * * * /path/to/backup.sh

在这个例子中, 0 3 * * * 表示在每天凌晨3点执行 /path/to/backup.sh 脚本。确保将 /path/to/backup.sh 替换为实际脚本的路径。

保存文件并关闭编辑器。

添加完毕后,cron 将在每天的指定时间自动执行你的备份脚本。

最后我们来看一下效果:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程我也会 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建备份脚本
  • 赋予执行权限
  • 授予PROCESS权限
    • 解决方法
    • 设置定时任务
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档