本文介绍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加入以下语句,重启mysql
log_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 'xq1hwhna4geapaaaagqbaaaaapeeaaaaaaeacxrlc3rfdxnlcgagy3nfdgfnaauddwedawl9agbawzlgxq1hwh5a4geanwaaajsbaaaaapeeaaaaaaeaagaf/+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 基于redis使用令牌桶算法实现流量控制的相关内容
如何通过php 创建带logo二维码类
详解mysql重建表分区并保留数据的相关方法
以上就是讲解mysql binlog的使用方法的详细内容。
