前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录Linux定时备份Mysql数据库文件,详细的图文教程,限小白大佬绕行

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

作者头像
李洋博客
发布2024-03-13 09:22:30
2320
发布2024-03-13 09:22:30
举报
文章被收录于专栏:李洋博客李洋博客

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

系统环境:

Linux系统:CentOS 6.5 64位

mysqldump:Ver 10.13 Distrib 5.5.40

目标要求:

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

操作过程:

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

代码语言:javascript
复制
which mysqldump

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

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

代码语言:javascript
复制
touch ~/.my.cnf

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

代码语言:javascript
复制
[mysqldump]
user=用户名
password=密码

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

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

代码语言:javascript
复制
#!/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用户,别弄错了,看图:

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

代码语言:javascript
复制
chmod +x /www/b/backup.sh

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

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

代码语言:javascript
复制
sed -i 's/\r$//' /www/b/backup.sh

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

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

代码语言:javascript
复制
crontab -e

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

代码语言:javascript
复制
30 1 * * * /www/b/backup.sh >> /www/b/backup.log 2>&1

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

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

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

代码语言:javascript
复制
crontab -l

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

代码语言:javascript
复制
bash /www/b/backup.sh

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 系统环境:
  • 目标要求:
  • 操作过程:
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档