linux下实现mysql定时备份

165 阅读1分钟

1、创建备份目录

mkdir /hmx/data/dbback/mysql

2、创建备份shell脚本

1、cd /hmx/data/dbback

2、touch bkmql.sh

3、vi bkmql.sh 输入一下内容

#db_user="mysql账号"
#db_passwd="密码"
db_name="数据库名称"
# the directory for story your backup file.you shall change this dir
backup_dir="/data/dbback/mysql"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")"

#mysqldump -u$db_user -p$db_passwd $db_name > "$backup_dir/$db_name"_"$time.sql"
mysqldump $db_name > "$backup_dir/$db_name"_"$time.sql"

3、编辑 vi /etc/my.cnf 在[client]下增加

user=你的账号
password=你的密码

如图:

image.png

4.添加可执行权限

chmod 777 bkmql.sh 
./ bkmql.sh 

然后在 /data/dbback/mysql 目录下就能看到备份文件

如果出现 mysqldump: command not found

解决办法: 首先找到mysqldump:

find / -name mysqldump --通过名称查找文件
我查到的地址在:/usr/local/mysql/bin/mysqldump
然后通过ln命令为mysqldump在/usr/bin创建一个软链接
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin

5、创建定时任务

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

service crond status //查看服务状态

检测或安装 crontab,通过命令判断crontab有没有,没有的话先安装。

yum -y install vixie-cron
yum -y install crontabs

执行命令: crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。 输入以下内容并保存:

#每周一上午10点执行一次定时器备份
0 10 * * 1 /data/dbback/bkmql.sh