Linux相关:linux服务器下MySQL数据库定时自动备份指定数据库

时间:2022-05-31 06:05:16

1.进入home目录

命令:cd /home

2.创建备份文件夹

命令:mkdir mysql_data

3.进入备份文件夹

命令:cd mysql_data

4.创建执行备份的脚本文件

命令:touch mysql_databak.sh

5.编辑备份脚本文件内容

命令:vim mysql_databak.sh

配置文件内容如下:

**********************************内容开始*************************************

#!/bin/sh 

DUMP=/usr/local/mysql/bin/mysqldump      #这个是我的mysqldump的路径,使用时要根据自己的环境修改;一般在/var/bin下面

OUT_DIR=/home/mysql_data        #备份文件的目录,没有提前建好

LINUX_USER=root       #linux用户

DB_NAME=zyzx        #要备份的数据库名字

DB_USER=root          #数据库登录名

DB_PASS=root           #数据库登陆密码

DAYS=7                #每次备份保存的时间

cd $OUT_DIR        #进入到备份目录下

DATE=`date +%Y_%m_%d`        #当前时间

OUT_SQL="$DATE.sql"            #备份出来的sql文件名

TAR_SQL="mysqldata_bak_$DATE.tar.gz"       #备份的sql文件打包后的文件名


#备份文件的操作,这里要注意自己环境的mysql.sock的路径 一般可能是在/temp下面

$DUMP --defaults-extra-file=./my.cnf  $DB_NAME >$OUT_SQL

tar -czf $TAR_SQL ./$OUT_SQL        #压缩为.tar.gz格式

rm $OUT_SQL        #删除生成的sql文件

chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL        #更改备份数据库文件的所有者

find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \;        #删除7天前的备份文件(注意:{} \;中间有空格)


**********************************内容结束*************************************

内容重点:(1):linux系统用户名;

                 (2):要备份的数据库名称;

                 (3):备份天数;

                 (4):执行的mysqldump命令;

6.再mysql_data文件夹下,新建my.cnf配置文件

命令:mkdir my.cnf

7.配置my.cnf文件内容

命令:vi my.cnf

内容如下:

**********************************内容开始*************************************

[client]

host=your_host            #你的主机地址或者localhost

user=your_user             #mysql数据库用户名

password=your_pass    #mysql数据库密码

**********************************内容结束*************************************

8.将脚本文件设置成可执行文件类型赋予执行权限:

chmod u+x /home/mysql_data/mysql_databak.sh

9. 添加定时任务:

vi /etc/crontab

*/1 * * * * root  /home/mysql_data/mysql_databak.sh    #表示每分钟执行备份(具体时间设置网上查下即可)

10.重启定时任务:

service crond restart

**

以上配置完成后,可以手动执行下脚本文件测试是否报错:

先启动mysql数据服务,然后执行脚本命令

命令:/home/mysql_data/mysql_databak.sh

查看目录mysql_data文件夹下是否已生成备份文件压缩包。