mysql之备份和导入数据(包括二进制日志)-阿里云开发者社区

开发者社区> 沉默王二> 正文

mysql之备份和导入数据(包括二进制日志)

简介: mysql之备份和导入数据(包括二进制日志)
+关注继续查看

前言:今天早上在写博客时,思索再三,没有更好的头绪,就想起了以前在操作mysql的时候,经常要用的一些命令,下面就来简单介绍一下

备份数据:

C:\Users\xxxx>mysqldump -uxxx -pxxx backup > backup.sql

C:\Users\xxxx>
mysqldump :mysql用于存储数据库的应用程序,会产生一个sql文件,如上文的backup.sql,其中包含了数据库的create、insert into等语句。

随后我们使用dir命令查看一下C:\Users\xxxx>目录的文件列表,可以看到

2014/08/23 10:15 1,271 backup.sql
恢复数据:

mysql> use backup;
Database changed
mysql> source C:\Users\xxxx\backup.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.03 sec)
使用mysql命令进入到mysql命令行,使用use backup切换数据库,然后使用source命令进行数据的恢复。

以上source命令在处理mysql的大量数据恢复时,速度还是比较可观的。

但是我们在真实的项目当中,经常需要用到二进制日志,那么下面我们来做一个二进制的日志备份操作

首先:我们查看一下mysql二进制日志是否开启

mysql> show variables like 'log_bin';
Variable_nameValue
log_binOFF

1 row in set (0.14 sec)

第二步:我们开启二进制日志(在Windows的mysql安装目录中的my.ini文件中增加以下内容,确保你的f盘有mysqlbin目录)

add log-bin

log-bin=f:/mysqlbin/binlog.log

set the database for test

binlog-do-db=backup

第三步:我们重启一下mysql

C:\Users\xxxx>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。

C:\Users\xxxx>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
第四步:再次查看log_bin是否开启

mysql> show variables like 'log_bin';
Variable_nameValue
log_binON

1 row in set (0.00 sec)

第五步:对backup数据库进行一下操作,假如已经存在

mysql> show columns from binlog;
FieldTypeNullKeyDefaultExtra
idint(11)YES NULL

1 row in set (0.08 sec)

mysql>
我们插入一条数据

mysql> insert into binlog values (2);
Query OK, 1 row affected (0.01 sec)

mysql> select * from binlog;
id
1
2

2 rows in set (0.00 sec)

mysql>

第六步:我们查看一下二进制日志目录

F:\mysqlbin>dir
驱动器 F 中的卷是 F:
卷的序列号是 000C-A0EB

F:\mysqlbin 的目录

2014/08/23 11:02

.
2014/08/23 11:02 ..
2014/08/23 11:02 126 binlog.000001
2014/08/23 11:02 107 binlog.000002
2014/08/23 11:02 52 binlog.index
           3 个文件            285 字节
           2 个目录 117,389,742,080 可用字节

第七步:我们再使用mysqlbinlog查看一下,内容比较多,上下使用了...空过,可以看到"insert into binlog values (2)"为我们刚刚操作的内容

F:\mysqlbin>mysqlbinlog binlog.000002
...
use backup/!/;
SET TIMESTAMP=1408763281/!/;
insert into binlog values (2)
/!/;

at 271

140823 11:08:01 server id 1 end_log_pos 298 Xid = 9

...

那么我们再次回去标题讲的二进制日志恢复和备份,备份就如前文所讲,那么就再来说说二进制的恢复

第一种:使用source命令,二进制日志是不能直接通过source命令来恢复,那么我们需要按照以下步骤来进行

第一步:先将二进制日志转换成普通sql文件

F:\mysqlbin>mysqlbinlog -uxxx -pxxx binlog.000001 > binlog1.sql

F:\mysqlbin>mysqlbinlog -uxxx -pxxx binlog.000002 > binlog2.sql

F:\mysqlbin>dir
驱动器 F 中的卷是 F:
卷的序列号是 000C-A0EB

F:\mysqlbin 的目录

2014/08/23 11:22

.
2014/08/23 11:22 ..
2014/08/23 11:02 126 binlog.000001
2014/08/23 11:08 298 binlog.000002
2014/08/23 11:02 52 binlog.index
2014/08/23 11:22 644 binlog1.sql
2014/08/23 11:22 1,569 binlog2.sql
           5 个文件          2,689 字节
           2 个目录 117,389,737,984 可用字节

第二步:新建一个sql文件,里面输入以下内容

source F:\mysqlbin\binlog1.sql
source F:\mysqlbin\binlog2.sql

第三步:导入以上的sql文件

mysql> source C:\Users\xxx\backup.sql
Query OK, 0 rows affected (0.00 sec)

第二种方法,使用mysqlbinlog

F:\mysqlbin>mysqlbinlog binlog.000001 | mysql -uroot -proot

F:\mysqlbin>mysqlbinlog binlog.000002 | mysql -uroot -proot

最后:这些简单的,常用的命令,以及使用方式都是非常值得总结的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12015 0
MySQL---数据库从入门走向大神系列(九)-用Java向数据库读写大文本/二进制文件数据
介绍MySQL的文本和图形数据类型: Text 类型: 数据类型:描述 ------------------------------------------------------ char(size):保存固定长度的字符串(可包含字母、数字以及特殊字符)。
994 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载