一:首先来了解一下mysql备份的基础mysqldump功能
格式:mysqldump -h链接ip -P(大写)端口 -u用户名 -p密码数据库名>保存的文件路径名.sql
示例:mysqldump -h132.72.192.432 -P3307 -uroot -p8888 htgl > bak.sql;
输入这个命令即可导出一个数据库备份的sql文件
二:接下来就是了解一下Linux的定时器功能
linux定时器是通过/etc/rc.d/init.d这个守护进程服务来实现的;他的命令格式如下:
crontab [-u user] [-l | -r | -e] [-i] [-s]
-u 指定用户
-e 编辑当前用户的crontab
-l 查看当前用户下的定时任务
-r 删除当前用户下的定时任务
注意:-u 后面是用户名如root用户,没有指定用户时默认为root用户,列如:crontab -l1:显示crontab当前用户下的定时任务:crontab -l
2:编辑www用户的定时任务:crontab -u www -e
3:按i进入编辑模式内容如下:
更详细的crontab内容可以查看我的另一篇【Linux定时任务】
三:编写一个shell脚本,再用crontab定时启动即可
在home目录下创建一个shell脚本文件(autoBak.sh),其内容如下:
#!/bin/sh
db_user="数据库用户名"
db_passwd="数据库密码"
db_name="数据库名"
db_host="数据库链接的IP地址"
back_dir="数据库备份的sql文件的存储路径"
name="$(date +"%Y%m%d%H%M%S")"
# 只备份数据,不备份表结构
/usr/bin/mysqldump -h$db_host -u$db_user -p$db_passwd $db_name |gzip >$back_dir/$name.sql.gz
# 备份表结构及数据
/usr/bin/mysqldump -u$db_user -p$db_passwd -t $db_name |gzip >$back_dir/$name.data.sql.gz
四:crontab定时任务:
20 17 * * * bin/sh data/shell/autoBak.sh
mysql -u$db_user -p$db_password $db_name < $name.sql
1,登录mysql :
mysql -u$db_user -p$db_password;
2,创建空数据库:
create database 数据库名 character set utf8mb4;
3,进入某个数据:
use 数据库;
4,设置编码:
set names utf8;
5,导入数据:
source sql文件路径


文章转载自编程经验共享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




