Mysql定时备份及数据导入恢复

简介:使用Linux定时任务定时备份数据库-mysql定时备份

一:首先来了解一下mysql备份的基础mysqldump功能格式

mysqldump --single-transaction --master-data=2 --triggers --routines -h链接ip -P(大写)端口 -u用户名 -p密码 -t --all-database > 保存的文件路径名.sql

参数说明:

--single-transaction:保证一个事物的完整性

--master-data:设置change master命令不被注销,1时会被注销

--triggers:备份触发器,如果不需要备份触发器直接忽略即可

--routines:备份存储过程函数,如果不需要备份存储过程直接忽略即可

--all-database:备份所有数据(--databases 数据库名;备份单个数据库,也可以直接写数据库名)必填项

-h:数据库服务器IP地址,默认为:127.0.0.1

-u:mysql数据库用户名(必填项

-p:密码。可以不写回车后在输入也可以必填项

-P:服务器数据库的端口号,默认为3306

-t:只备份数据不备份表结构

接下来我们来看看几个示例:

1.备份htgl整个数据库:

mysqldump --single-transaction --master-data=2 -h132.72.192.432 -P3307 -uroot -p8888 htgl > bak.sql;

2.备份整个数据库的数据没有表结构:

mysqldump -uroot -p -t 数据库名 > 表.sql

3.备份某个数据库的某个或几个表的数据(没有表结构)

mysqldump -uroot -p -t 数据库名 表名1 表名2 > 表.sql

3.使用GZIP将备份结果压缩:

mysqldump -all-databases -uroot -p |gzip>all.sql.gz

二:接下来就是了解一下Linux的定时器功能

linux定时器是通过/etc/rc.d/init.d这个守护进程服务来实现的;他的命令格式如下:

crontab [-u user] [-l | -r | -e] [-i] [-s]

-u 指定用户
-e 编辑当前用户的crontab
-l 查看当前用户下的定时任务
-r 删除当前用户下的定时任务
注意:-u 后面是用户名如root用户,没有指定用户时默认为root用户,列如:crontab -l

1:显示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数据导入:
      方法一:
mysql -udb_user  -pdb_password  db_name < name.sql
      方法二:
 1,登录mysql :
mysql -udb_user  -pdb_password;

2,创建空数据库:
create database 数据库名 character set utf8mb4; 

3,进入某个数据:
use 数据库;

4,设置编码:
set names utf8;

5,导入数据:
source  sql文件路径

 

有遗漏或者不对的可以在我的公众号留言哦

编程经验共享公众号二维码

编程经验共享公众号二维码
更多内容关注公众号
Copyright © 2021 编程经验共享 赣ICP备2021010401号-1