美文网首页
mysql学习之binlog

mysql学习之binlog

作者: 北你妹的风 | 来源:发表于2017-02-21 11:47 被阅读28次

    mysql   Binary Log也就是常说的bin-log,,是mysql执行改动产生的二进制日志文件,其主要作用有两个:

    * 数据恢复

    * 主从数据库。用于slave端执行增删改,保持与master同步。

    如何查看bin_log是否打开,执行以下sql语句:

          show variables like 'log_bin'

    如果值为on,则表示bin_log。如果为off,则需要通过以下方式打开:

    找到my.ini配置文件,找到log_bin,去掉前面的注释,然后加上log_bin=“mysql_log_bin”.

    mysql会在名字后面自动加上6位编码,从000001开始,按上面的例子,文件名称为mysql_log_bin.000001,mysql_log_bin.000002,mysql_log_bin.000003...........

    如何查看这些文件呢?bin_log是二进制文件,因此这些文件是无法用记事本打开的。可在客户端执行以下sql进行查看,show binlog events in  mysql_log_bin.000001'.

    结果当中有log_name,pos,event_type,server_id,end_log_pos,info等字段。通过info字段能清晰的看出都执行了那些操作。那有人问,你怎么知道最后操作的文件时000001呢?可以通过以下命令来查看最后一个bin_log的日志文件:show master status,其中的File字段显示的就是最后一个日志文件。

    接下来讲一下如何利用bin_log恢复数据。

    恢复数据主要使用mysqlbinlog工具,各位看官如果没有可自行下载。

    mysqlbinlog可以执行很多命令,具体命令参考mysqlbinlog --help。这里着重讲一下恢复数据。

    上面介绍了如何查看文件,通过文件中可以找到每条sql语句执行的位置即position,使用

    mysqlbinlog --start-position=4 --stop-position=119  mysql_log_bin.000002|mysql -u root -p 

    命令可恢复指定行的sql语句,that is all。

    最后说一些bin_log常用操作

    1.flush logs  启用新的日志文件,一般在备份完数据库之后执行

    2.reset  master  清空现有所用的bin_log文件

    相关文章

      网友评论

          本文标题:mysql学习之binlog

          本文链接:https://www.haomeiwen.com/subject/ftdewttx.html