Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

WBOY
Freigeben: 2016-06-07 16:27:10
Original
936 Leute haben es durchsucht

mysql之备份和导入数据(包括二进制日志) 前言 :今天早上在写博客时,思索再三,没有更好的头绪,就想起了以前在操作mysql的时候,经常要用的一些命令,下面就来简单介绍一下 ? 备份数据: C:\Users\xxxxmysqldump -uxxx -pxxx backup backup.sqlC:\Users\x

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

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

?

备份数据:

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

C:\Users\xxxx>
Nach dem Login kopieren

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

?

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

2014/08/23  10:15             1,271 backup.sql
Nach dem Login kopieren

?恢复数据:

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)
Nach dem Login kopieren

?使用mysql命令进入到mysql命令行,使用use backup切换数据库,然后使用source命令进行数据的恢复。

?

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

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

?

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

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+
1 row in set (0.14 sec)
Nach dem Login kopieren

?

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

# add log-bin
log-bin=f:/mysqlbin/binlog.log
# set the database for test
binlog-do-db=backup
Nach dem Login kopieren

?

第三步:我们重启一下mysql

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


C:\Users\xxxx>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
Nach dem Login kopieren

第四步:再次查看log_bin是否开启

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+
1 row in set (0.00 sec)
Nach dem Login kopieren

?

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

mysql> show columns from binlog;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id    | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
1 row in set (0.08 sec)

mysql>
Nach dem Login kopieren

?我们插入一条数据

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>
Nach dem Login kopieren

?

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

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

 F:\mysqlbin 的目录

2014/08/23  11:02    <dir>          .
2014/08/23  11:02    <dir>          ..
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 可用字节</dir>
</dir>
Nach dem Login kopieren

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

F:\mysqlbin>mysqlbinlog binlog.000002
...
use backup/*!*/;
SET TIMESTAMP=1408763281/*!*/;
<span>insert into binlog values (2)</span>
/*!*/;
# at 271
#140823 11:08:01 server id 1  end_log_pos 298   Xid = 9
...
Nach dem Login kopieren

?

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

?

第一种:使用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    <dir>          .
2014/08/23  11:22    <dir>          ..
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 可用字节</dir>
</dir>
Nach dem Login kopieren

?

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

source F:\mysqlbin\binlog1.sql
source F:\mysqlbin\binlog2.sql
Nach dem Login kopieren

?

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

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

?

第二种方法,使用mysqlbinlog

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

F:\mysqlbin>mysqlbinlog binlog.000002 | mysql -uroot -proot
Nach dem Login kopieren

?

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

?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!