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
呈现效果如下