linux导出数据库(10分钟搞定Linux系统MySQL数据库自动备份)

linux导出数据库(10分钟搞定Linux系统MySQL数据库自动备份)

大家好,今天给各位分享linux导出数据库的一些知识,其中也会对linux导出数据库进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!



创建备份脚本

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

linux导出数据库(10分钟搞定Linux系统MySQL数据库自动备份)

#!/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)中,可以按照以下步骤进行操作:

crontab -e

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

0 3 * * * /path/to/backup.sh

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

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

最后我们来看一下效果:

好了,以上就是全部的操作过程,欢迎你留言补充~

#MySQL #数据库 #自动备份 #Linux #脚本

以上是关于linux导出数据库的相关信息,了解更多关于内容请继续关注本站。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有