mysql binlog日志查询不出语句问题及解决
作者:DBA界的小学生
mysql binlog日志查询不出语句
当bin-log的模式设置为 row时
不仅日志长得快 并且查看执行的sql时 也稍微麻烦一点:
1.干扰语句多
2.生成sql的编码需要解码
binlog_format=row
直接mysqlbinlog出来的 文件
执行sql部分的sql显示为base64编码格式
固生成sql记录的时候 不能用常规的办法去生成 需要加上相应的参数才能显示出sql语句
--base64-output=decode-rows -v
例如:
/opt/MySQL/bin/mysqlbinlog --base64-output=decode-rows -v --start-date='2014-09-16 14:00:00' --stop-date='2014-09-16 14:20:00' /opt/mysql/log/mysql-bin.000017 >/opt/mysql_bak/mysqlbinlogsql_restore_2014091614.sql
mysql的binlog日志
查看和配置binlog
1、log_bin 是否开启binlog,指定日志文件路径
2、log_bin_basename 和 log_bin_index 日志文件基础名和索引名(*好像不能用来设置只是展示作用,我设置时时会报错无法启动服务)
3、binlog_format 日志格式
4、binlog_error_action 设置当binlog日志数据一致性遭到破坏或者复制操作停止时,服务器要做什么操作。有两个选项ABORT_SERVER 服务关闭(默认值), IGNORE_ERROR 忽略错误。
操作binglog日志的常用命令
1、show master logs; 或者 show binary logs; 查看所有binlog日志列表。
2、show master status; 查看master状态。
- File 最新的一个binlog日志的编号名称
- Position 最后一个操作事件pos结束点的值
3、flush logs; 刷新log日志文件,从当前时间开始产生一个新编号的binlog日志文件。
******每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqldump备份数据时加 -F 选项也会刷新binlog日志;
4、reset master; 清空所有binlog日志
使用mysql自带的mysqlbinlog命令和grep命令 查看binlog
1、mysqlbinlog 【参数 】 【binlog文件】
- -d, --database=name 仅显示指定数据库的转储内容。
- -o, --offset=# 跳过前N行的日志条目。
- -r, --result-file=name 将输入的文本格式的文件转储到指定的文件。
- -s, --short-form 使用简单格式。
- --set-charset=name 在转储文件的开头增加'SET NAMES character_set'语句。
- --start-datetime=name 日志的起始时间。
- --stop-datetime=name 日志的截止时间。
- -j, --start-position=# 日志的起始位置。
- --stop-position=# 日志的截止位置。
- --base64-outputbinlog 输出语句的base64解码
分为三类:
默认是值auto ,仅打印base64编码的需要的信息,如row-based 事件和事件的描述信息。
- never 仅适用于不是row-based的事件
- decode-rows 配合--verbose选项一起使用解码行事件到带注释的伪SQL语句
- -v,--verbose :显示statement模式带来的sql语句
***解析mixed格式binlog需要使用 --base64-output=DECODE-ROWS --verbose或--base64-output=DECODE-ROWS -v 来解析
2、grep '【关键字】' 【参数】
grep是一个强大的文本搜索工具命令,用于查找文件中符合指定格式的字符串,支持正则表达式。
grep命令常用参数说明
- -A 除了显示符合条件的那一行之外,并显示该列之后的指定行的内容内容。
- -B 除了显示符合条件的那一行之外,并显示该列之前的指定行的内容内容。
- -c 计算符合结果的行数。
- -i 忽略字符大小写
- -v 反向查找
- -e 按指定字符串查找
- -E 按指定字符串指定的正则查找
- -n 在显示符合条件的那一行前,标识出该行的行数标号。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。