记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行

IT老李03-122.9 K阅读1评论

温馨提示:这篇文章已超过213天没有更新,请注意相关的内容是否还可用!

宝塔面板的功能越来越多这也导致了部分用户放弃了宝塔改成原汁原味的linux,虽说操作上不太方便但是主打一个清净,今天就记录下另外一台云服务器定时备份mysql数据库文件的相关图文教程,因为我也很少接触linux系统,都是面板形式的,所以找了些资料总归是实现目前想要的结果,当然了操作仅限我们这些小白们,大佬请绕行,好了不废话了,开始折腾:

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第1张

系统环境:

Linux系统:CentOS 6.5 64位

mysqldump:Ver 10.13 Distrib 5.5.40

目标要求:

每天01:30备份project_manager数据库,并将备份文件保存到指定路径(/newdisk/backupsql),同时在目录中保留最近3天的备份文件。

操作过程:

首先确定系统已经安装了【mysqldump】直接查看安装位置,一会会用到,代码如下:

which mysqldump

系统会告诉你具体的路径,例如“/usr/bin/mysqldump”,

为了安全起见我们不直接在脚本文件添加数据库的链接信息,创建一个 .my.cnf 文件(文件名以点开头表示为隐藏文件):

touch ~/.my.cnf

编辑该文件,默认文件路径【/root】,并添加以下内容:

[mysqldump]
user=用户名
password=密码

设置正确的数据库用户和密码,这里用户一般是指root,设置完成后,效果如图:

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第2张

可能有些人会问,我要备份的数据库是zblogphp呢?别急,接着看,通知之前的操作,我们确定了【mysqldump路径】和需要引用的【数据库信息】那么接下来在【/www/b】目录下新建一个【backup.sh】文件,因为我不太喜欢使用shell软件去新建,所以我使用FTP链接,直接新建了【backup.sh】,新建文件之后,代码如下:

#!/bin/bash

# 备份的数据库名
DB_NAME="zbp_1012"

# 设置备份路径
BACKUP_PATH="/www/b"

# 生成备份文件名
BACKUP_FILE="backup_$(date +%Y%m%d_%H%M%S).sql"

# 使用mysqldump备份数据库,注意替换/usr/bin/mysqldump路径
/usr/bin/mysqldump $DB_NAME > $BACKUP_PATH/$BACKUP_FILE

# 删除旧的备份文件(保留最近3天的备份)
find $BACKUP_PATH -type f -mtime +3 -name "backup_*.sql" -exec rm {} \;

代码中必须要修改的信息参考下图中的红框位置,数据库名还有备份的路径已经mysqldump路径,这里的【zbp_1012】就是我们需要备份的数据库名称,不是root用户,别弄错了,看图:

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第3张

完成之后不要忘记给予执行权限,命令如下:

chmod +x /www/b/backup.sh

其中【/www/b】是自己实际的目录位置。

PS:这里在说明下,如果你的文件【backup.sh】不是在linux下使用命令编辑的话,还需要执行以下命令,如果是在linux新建并编辑的,可以忽略此命令:

sed -i 's/\r$//' /www/b/backup.sh

这个命令会使用 sed 工具将脚本文件中的 DOS 格式换行符(\r)替换为空,从而将其转换为 Unix 格式。说白了就是 Windows 换行符的表示方式,在 Linux 系统中会导致解释器无法正确识别需要转换,直接使用Linux的就忽略这段代码就行,执行代码不会提示什么,大概就酱婶儿的:

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第4张

确定之后我们再创建一个cron任务:

crontab -e

编辑cron任务,添加以下行以在每天01:30执行备份脚本,注意:请确保将【/www/b/backup.sh】替换为实际的脚本路径),代码如下:

30 1 * * * /www/b/backup.sh >> /www/b/backup.log 2>&1

然后直接输入【i】进入编辑模式,底部出现【INSERT】字样,然后最后一行鼠标右键,粘贴代码,再按下键盘【Esc】结束编辑模式,再依次按冒号【:】和【wq】,意思是保存并退出,如图:

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第5张

注意上面的【/www/b/backup.s】h是您的脚本文件的路径,【/www/b/backup.log】是您希望将日志保存到的文件的路径。>>表示将输出追加到文件,而2>&1表示将标准错误(2)重定向到标准输出(1),这样错误和正常输出都会被记录到日志文件中。

代码的时间【05 14】是为了测试效果定时14点05分,改成实际需求就行,切记编辑模式下需要是英文状态,不能是中文否则会出错,编辑结束后以下命令查看:

crontab -l

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第6张

好了,现在,您的数据库备份任务已经设置好了,设置完成后,最好使用如下命令执行测试一下看看代码是否有问题,命令:

bash /www/b/backup.sh

这时开始运行脚本文件,刷新FTP路径就会发现数据库文件已经备份完成,如图:

记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行 第7张

至此备份已经全部完成,当然可能会出现一些小瑕疵,但是不影响正常的备份,为了确保备份正常最好将数据库下载本地,测试下是否完整,好了,有其他问题留言反馈一步步测试好累,我去歇会~~~

文章版权声明:除非注明,否则均为IT老李原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (有 1 条评论,2900人围观)
网友昵称:优惠券网
优惠券网 V 铁粉 Google Chrome 108.0.5359.128 Android 13 沙发
03-16 来自安徽 回复
写的很详细具体,学习到了,多谢博主的分享!⌇●﹏●⌇
取消
微信二维码
微信二维码
支付宝二维码