云服务器定时备份mysql数据库文件的相关说明书

Lunvps
pENeBMn.png

云服务器定时备份mysql数据库文件的相关说明书

系统环境:

Linux系统:CentOS 6.5 64位

mysqldump:版本 10.13 发行版 5.5.40

目标要求:

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

操作流程:

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

which mysqldump

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

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

touch ~/.my.cnf

编辑该文件,默认文件路径为[/root],添加以下内容:

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

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

云服务器定时备份mysql数据库文件的相关说明书

有人可能会问,那我要备份的数据库是PHP的怎么办?别着急,我们继续。前面的操作中,我们确定了【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用户,千万不要搞错了。看图:

云服务器定时备份mysql数据库文件的相关说明书

完成后别忘了赋予执行权限,命令如下:

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,直接忽略这行代码就行了。执行代码时不会有任何提示。大概是这样的:

云服务器定时备份mysql数据库文件的相关说明书

确认之后我们创建一个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],表示保存并退出,如图:

云服务器定时备份mysql数据库文件的相关说明书

注意,[/www/b/backup.s]h 是你的脚本文件的路径,[/www/b/backup.log] 是你要保存日志的文件路径。>> 表示将输出追加到文件,2>&1 表示将标准错误(2)重定向到标准输出(1),这样错误和正常输出都会记录在日志文件中。

代码中的时间[05 14]是在14:05测试效果,大家可以改成自己的实际需求,切记编辑模式一定要是英文,不能是中文,否则会出错,编辑完成后运行以下命令查看:

crontab -l

云服务器定时备份mysql数据库文件的相关说明书

OK,现在你的数据库备份任务已经设置好了,设置完成后最好用下面的命令来测试一下代码是否有问题,命令:

bash /www/b/backup.sh

现在开始运行脚本文件,并刷新FTP路径就可以发现数据库文件已经备份了,如图:

云服务器定时备份mysql数据库文件的相关说明书

到此为止备份就完成了,当然可能还会有些小瑕疵,但是不影响正常备份,为了保证备份正常,最好把数据库下载到本地测试一下是否完整。好了,有其他问题的话就留言反馈吧,一步步测试好累,我要休息一下了~~~

pENeBMn.png
文章版权声明:除非注明,否则均为论主机评测网原创文章,转载或复制请以超链接形式并注明出处。

pENeBMn.png

目录[+]