MySQL的binlog日志
binlog 基本认识
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景:
其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
其二:自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。
二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。
Windows下Mysql5.7开启binlog步骤及注意事项
1、查看是否开启了binlog:show binary logs;
默认情况下是不开启的。
2、开启binlog:修改mysql的配置文件my.ini。添加如下配置:
该文件默认不允许修改,需要右键“管理员取得所有权”之后才能保存修改。
另外,需要注意的是图中的my.ini位于:C:\ProgramData\MySQL\MySQL Server 5.7,而不是位于:C:\Program Files\MySQL\MySQL Server 5.7。看图:
3、重启mysql服务。如图:
4、验证binlog是否开启:show variables like 'log_bin'; 和 show binary logs;
5、binlog文件的位置:如果在修改my.ini的binlog时给的是全路径,那么生成的日志文件就在指定的目录下;如果如步骤2中只给一个名字,那么生成的binlog日志的位置为:
假设给的全路径配置为:
服务重启之后就会在指定目录下产生mysql-bin.000001和mysql-bin.index文件:
net stop mysql57
net start mysql57
mysqlbinlog –base64-output=decode-rows –v D:\var\mysql\mysql-bin.000001 > D:\var\mysql\mysql20180201.sql
参考文档: http://blog.csdn.net/mchdba/article/details/50300035