Mysql读取binlog并分析 binlog

1,Mysql 开启 binlog

配置文件中增加

[mysqld] 
log-bin=mysql-bin

2.常用 binlog命令

# 是否启用binlog日志
show variables like 'log_bin';

# 查看详细的日志配置信息
show global variables like '%log%';

# 查看binlog的目录
show global variables like "%log_bin%";

# 查看当前服务器使用的biglog文件及大小
show binary logs;

# 查看指定 binlog 信息
SHOW BINLOG EVENTS IN '{binLog名字}' from 起始位置;

# 查看最新一个binlog日志文件名称和Position
show master status;

# 清除所有的binlog⽂件,并且重置为⼀个
reset master

 3,mysqlbinlog 的命令

选项名称 描述 引用 弃用
--base64-output 使用base-64编码打印二进制日志条目
--base64-output=decode-rows 解码具体 sql
--bind-address 使用指定的网络接口连接到MySQL Server
--binlog-row-event-max-size 二进制日志最大事件大小
--character-sets-dir 字符集的安装目录
--connection-server-id 用于测试和调试。有关适用的默认值和其他详细信息,请参见文本 5.7.5
--database 仅列出该数据库的条目
--debug 编写调试日志
--debug-check 程序退出时打印调试信息
--debug-info 程序退出时打印调试信息,内存和CPU统计信息
--default-auth 身份验证插件使用
--defaults-extra-file 除了通常的选项文件,还读取命名的选项文件
--defaults-file 只读命名的选项文件
--defaults-group-suffix 选项组后缀值
--disable-log-bin 禁用二进制日志记录
--exclude-gtids 不要显示提供的GTID集中的任何组
--force-if-open 读取二进制日志文件,即使打开或未正确关闭
--force-read 如果mysqlbinlog读取了无法识别的二进制日志事件,则会输出警告
--get-server-public-key 从服务器请求RSA公钥 5.7.23
--help 显示帮助信息并退出
--hexdump 显示登录注释的十六进制转储
--host MySQL服务器所在的主机
--idempotent 仅在处理来自此会话的二进制日志更新时,导致服务器使用幂等模式 5.7.0
--include-gtids 仅显示提供的GTID集中的组
--local-load 在指定目录中为LOAD DATA准备本地临时文件
--login-path 从.mylogin.cnf中读取登录路径选项
--no-defaults 不读取选项文件
--offset 跳过日志中的前N个条目
open_files_limit 指定要保留的打开文件描述符的数量
--password 连接服务器时使用的密码
--plugin-dir 安装插件的目录
--port 用于连接的TCP / IP端口号
--print-defaults 打印默认选项
--protocol 使用的连接协议
--raw 将事件以原始(二进制)格式写入输出文件
--read-from-remote-master 从MySQL主服务器读取二进制日志,而不是读取本地日志文件
--read-from-remote-server 从MySQL服务器而不是本地日志文件中读取二进制日志
--result-file 直接输出到命名文件
--rewrite-db 从基于行的格式编写的日志中播放时,为数据库创建重写规则。可多次使用 5.7.1
--secure-auth 不要以旧(4.1之前)格式向服务器发送密码 5.7.4 5.7.5
--server-id 仅提取由具有给定服务器ID的服务器创建的那些事件
--server-id-bits 告诉mysqlbinlog当mysqld编写的server-id-bits设置为小于最大值时,如何解释二进制日志中的服务器ID;仅受MySQL Cluster版本的mysqlbinlog支持
--server-public-key-path 包含RSA公钥的文件的路径名 5.7.23
--set-charset 在输出中添加SET NAMES charset_name语句
--shared-memory-base-name 用于共享内存连接的共享内存的名称
--short-form 仅显示日志中包含的语句
--skip-gtids 不要打印任何GTID。从包含GTID的二进制日志写入转储文件时使用此功能
--socket Unix套接字文件或Windows命名管道使用
--ssl 启用连接加密 5.7.3
--ssl-ca 包含受信任的SSL证书颁发机构列表的文件 5.7.3
--ssl-capath 包含受信任的SSL证书颁发机构证书文件的目录 5.7.3
--ssl-cert 包含X.509证书的文件 5.7.3
--ssl-cipher 连接加密的允许密码 5.7.3
--ssl-crl 包含证书吊销列表的文件
--ssl-crlpath 包含证书吊销列表文件的目录
--ssl-key 包含X.509密钥的文件 5.7.3
--ssl-mode 与服务器连接的所需安全状态 5.7.11
--ssl-verify-server-cert 根据服务器证书的公用名身份验证主机名 5.7.3
--start-datetime 从第一个事件中读取时间戳等于或晚于datetime参数的二进制日志
--start-position 从位置等于或大于参数的第一个事件读取二进制日志
--stop-datetime 在时间戳等于或大于datetime参数的第一个事件时停止读取二进制日志
--stop-never 读取最后一个二进制日志文件后保持与服务器的连接
--stop-never-slave-server-id 连接到服务器时要报告的从服务器ID
--stop-position 在第一个事件中停止读取二进制日志,且位置等于或大于参数
--tls-version 允许的TLS协议进行加密连接 5.7.10
--to-last-log 不要在从MySQL服务器请求的二进制日志的结尾处停止,而要继续打印到最后一个二进制日志的结尾
--user 连接服务器时要使用的MySQL用户名
--verbose 将行事件重建为SQL语句
--verify-binlog-checksum 验证二进制日志中的校验和

 4,举例说明

mysqlbinlog --base64-output=decode-rows -v --start-position=1036090025 --stop-position=1036094825 /home/mysql80/data/mysql-bin.000071 > 1.log
vim 1.log

呈现效果如下

Mysql读取binlog并分析 binlog_第1张图片

你可能感兴趣的:(sql,mysql,数据库)