php解析binlog,讲解mysql binlog的使用方法

本文介绍mysql binlog的使用,包括开启,关闭,查看状态,刷新,清空,查看执行的sql语句等操作。并对5.7及旧版本的设置加以说明,方便大家学习。

mysql binlog 介绍

binlog就是binary log,二进制日志文件,记录了mysql所有的dml操作。

根据mysql binlog文件,我们可以查看执行了什么sql语句,进行数据恢复,主从同步复制等操作。

binlog文件对于一个数据库的处理和恢复有很重要的作用。

1.mysql binlog 开启与关闭

查看mysql binlog配置show global variables like '%log_bin%';

+---------------------------------+-------+| Variable_name | Value |

+---------------------------------+-------+| log_bin | OFF |

| log_bin_basename | |

| log_bin_index | |

| log_bin_trust_function_creators | OFF |

| log_bin_use_v1_row_events | OFF |+---------------------------------+-------+

binlog 当前是关闭的。

开启binlog

打开my.cnf或my.ini加入以下语句,重启mysqllog_bin=ONlog_bin_basename=/usr/local/var/mysql/mysql-binlog_bin_index=/usr/local/var/mysql/mysql-bin.index

log_bin

ON表示打开binlog日志,关闭改为OFF。

log_bin_basename

表示binlog日志的基本文件名,后面会追加标识来区分每一个文件。

log_bin_index

指定binlog文件的索引文件,这个文件管理了所有binlog文件的目录。

如果是mysql5.7以下,这样设置就可以了,如果是5.7以上,需要按以下设置log_bin=mysql-binserver_id=123456

log_bin 表示自定义binlog文件名称。

server_id 表示随机指定一个与其他集群机器不重名的字符串,配置mysql replication需要定义,不能和canal的slaveId重复。

重启后再次查看mysql binlog配置show global variables like '%log_bin%';

+---------------------------------+--------------------------------------+| Variable_name | Value |

+---------------------------------+--------------------------------------+| log_bin | ON |

| log_bin_basename | /usr/local/var/mysql/mysql-bin |

| log_bin_index | /usr/local/var/mysql/mysql-bin.index |

| log_bin_trust_function_creators | OFF |

| log_bin_use_v1_row_events | OFF |+---------------------------------+--------------------------------------+

可以看到binlog已开启。

2.查看binlog日志文件列表show master logs;

+------------------+-----------+| Log_name | File_size |

+------------------+-----------+| mysql-bin.000001 | 177 |

| mysql-bin.000002 | 177 |

| mysql-bin.000003 | 177 |

| mysql-bin.000004 | 177 |

| mysql-bin.000005 | 177 |

| mysql-bin.000006 | 177 |

| mysql-bin.000007 | 201 |

| mysql-bin.000008 | 201 |

| mysql-bin.000009 | 201 || mysql-bin.000010 | 154 |

+------------------+-----------+

3.查看当前正在写入的binlog日志show master status;

+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000010 | 154 | | | |

+------------------+----------+--------------+------------------+-------------------+

4.刷新binlog日志文件flush logs;

5.清空日志文件reset master;

6.查看binglog日志文件内容

查看binlog日志文件,查看执行了哪些sql语句,我们可以使用mysqlbinlog工具进行处理。

首先根据log_bin_basename,找到存放binlog文件的目录,然后使用mysqlbinlog工具查看对应的binlog文件。

例如:mysqlbinlog -v mysql-bin.000001 > mysql-bin-1.log

然后查看mysql-bin-1.log,可以查看执行过的sql语句。BINLOG '

Xq1HWhNA4gEAPAAAAGQBAAAAAPEEAAAAAAEACXRlc3RfdXNlcgAGY3NfdGFnAAUDDwEDAwL9AgBa

WZlG

Xq1HWh5A4gEANwAAAJsBAAAAAPEEAAAAAAEAAgAF/+ACAAAABABjc2RuAf2LG1r9ixtaIS88ZA==

'/*!*/;### INSERT INTO `test_user`.`cs_tag`### SET### @1=2### @2='csdn'### @3=1### @4=1511754749### @5=1511754749# at 411

使用mysqlbinlog时需要注意一下几点

1.不要查看当前正在写入的binlog文件,可以先把文件复制到其他目录,再执行查看。

2.不要加force参数强制访问。

3.如果binlog格式是row模式的,请加-vv参数。

本篇文章讲解了mysql binlog的使用方法,更多相关知识请关注php中文网。

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值