mysql ,binlog 日志查询

mysql ,binlog 日志查询文章目录一 开启 binlog 二 通过 mysql 的变量配置表 查看二进制日志是否已开启三 binlog 日志内容查看 1 mysql 查看 binlog2 找到 mysqlbinlog 命令 3 使用 mysqlbinlog 命令 4 mysqlbinlog 异常四 常用的 Binlog 操作命令一 开启 binlog 在 mysql 的配置文件 my cnf 开启 log bin 功能 log bin mysql bin 确认是打开状态 说明 值 mysql bin 是日志的基本名或前缀名 mysqld log bin

一、开启binlog

在 mysql 配置文件 my.cnf 中,开启 log-bin 功能,log-bin=mysql-bin 确认是打开状态。

[mysqld] log-bin=mysql-bin 

说明,值 mysql-bin 是日志的基本名或前缀名。

二、通过mysql的变量配置表,查看二进制日志是否已开启

mysql> show variables like 'log%'; +----------------------------------------+--------------------------------------+ | Variable_name | Value | +----------------------------------------+--------------------------------------+ | log_bin | ON | ---> ON,表示已经开启binlog日志 | log_bin_basename |/usr/local/mysql/data/mysql-bin | ---> binlog日志存储位置 | log_bin_index |/usr/local/mysql/data/mysql-bin.index | ---> binlog日志的格式 | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | log_builtin_as_identified_by_password | OFF | | log_error | /data1/mysql/logs/error.log | | log_error_verbosity | 3 | | log_output | FILE | | log_queries_not_using_indexes | OFF | | log_slave_updates | ON | | log_slow_admin_statements | OFF | | log_slow_slave_statements | OFF | | log_statements_unsafe_for_binlog | ON | | log_syslog | OFF | | log_syslog_facility | daemon | | log_syslog_include_pid | ON | | log_syslog_tag | | | log_throttle_queries_not_using_indexes | 0 | | log_timestamps | UTC | | log_warnings | 2 | +----------------------------------------+--------------------------------------+ 

三、binlog日志内容查看

1、mysql 查看 binlog 命令

mysql> show binlog events; # 只查看第一个 binlog 文件的内容 mysql> show binlog events in 'mysql-bin.000002'; # 查看指定 binlog 文件的内容 mysql> show binary logs; # 获取 binlog 文件列表 mysql> show master status# 查看当前正在写入的 binlog 文件 

2、找到 mysqlbinlog 命令

mysqlbinlog 是一个查看 mysql 二进制日志的工具,可以把 mysql 上面的所有操作记录从日志里导出,这个工具默认的安装路径为:/usr/local/mysql/bin/mysqlbinlog

可以通过命令查找 mysqlbinlog 的工具路径:

find / -name "mysqlbinlog" 

3、使用 mysqlbinlog 命令

bin log 是二进制文件,二进制文件更省空间,写入速度更快,是无法直接打开来查看的。

(1) 如果 log-bin 文件比较小,可以直接查看日志:

/usr/local/mysql/bin/mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.0007 

--no-defaults 可以省略,参考 下面的mysqlbinlog 异常 说明。

(2) 将log-bin解析后的日志转入到指定文件

/usr/local/mysql/bin/mysqlbinlog --no-defaults/usr/local/mysql/data/mysql-bin.0007 > /tmp/mysql_bin_07.sql 

(3)基于开始和结束时间:

/usr/local/mysql/bin/mysqlbinlog --start-datetime="2021-10-01 00:00:00" --stop-datetime="2021-10-21 23:59:59" /usr/local/mysql/data/mysql-bin.0007 -r test2.sql 

(4)增加过滤,只查询 insert、update、delete 的语句,使用用more来查看:

/usr/local/mysql/bin/mysqlbinlog --no-defaults --database=raceEnroll mysql-bin.000007 |grep update | more 

4、mysqlbinlog 异常

直接 执行 /usr/local/mysql/bin/mysqlbinlog mysql-bin.000007 日志时,可能会报如下错误:

mysql> /usr/local/mysql/bin/mysqlbinlog mysql-bin.000007 mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8mb4' mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8' 

原因:

mysqlbinlog 这个工具无法识别 binlog 中的配置中的 default-character-set=utf8mb4 这个指令。

解决方法:

添加 --no-defaults 参数,即: /usr/local/mysql/bin/mysqlbinlog --no-defaults mysql-bin.000007

四、常用的Binlog操作命令

# 是否启用binlog日志 show variables like 'log_bin'; # 查看详细的日志配置信息 show global variables like '%log%'; # mysql数据存储目录 show variables like '%dir%'; # 查看binlog的目录 show global variables like "%log_bin%"; # 查看当前服务器使用的biglog文件及大小 show binary logs; # 查看主服务器使用的biglog文件及大小 # 查看最新一个binlog日志文件名称和Position show master status; # 事件查询命令 # IN 'log_name' :指定要查询的binlog文件名(不指定就是第一个binlog文件) # FROM pos :指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算) # LIMIT [offset,] :偏移量(不指定就是0) # row_count :查询总条数(不指定就是所有行) show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]; # 查看 binlog 内容 show binlog events; # 查看具体一个binlog文件的内容 (in 后面为binlog的文件名) show binlog events in 'master.000003'; # 设置binlog文件保存事件,过期删除,单位天 set global expire_log_days=3; # 删除当前的binlog文件 reset master; # 删除slave的中继日志 reset slave; # 删除指定日期前的日志索引中binlog日志文件 purge master logs before '2019-03-09 14:00:00'; # 删除指定日志文件 purge master logs to 'master.000003'; 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223595.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:50
下一篇 2026年3月17日 下午1:50


相关推荐

  • ubuntu 更换主题[通俗易懂]

    ubuntu 更换主题[通俗易懂]1、安装工具1.1、安装控制工具sudoapt-getupdatesudoapt-getinstallgnome-tweak-tool1.2、打开刚刚安装的名为“优化”的工具后面的操作离不开这个工具,可以看到这个工具内的外观菜单下有:主题、背景、锁屏,我们的换主题操作就是在这里进行1.3、我们会发现s…

    2026年2月20日
    4
  • winscp登录主机拒绝_winscp_winscp连接被拒绝_winscp下载

    winscp登录主机拒绝_winscp_winscp连接被拒绝_winscp下载winscpwinscpItappearsthatyourbrowserdoesnotcomplywiththeW3Cwebstandardswhichdefinehowwebpagesareencoded,transmitted,andrendered.Thissitewouldlookmuchbetterinastandards-c…

    2025年12月15日
    5
  • linux mail发送邮件_shell传输文件

    linux mail发送邮件_shell传输文件Linux发邮件之mail命令详解发布于2017-01-0516:44:04|154次阅读|评论:0|来源:网友投递LinuxLinux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。这篇文章主要介绍了Linux发邮件之mail命令详解,详细的讲解…

    2022年10月20日
    7
  • Android学习路线:如何成长为高级工程师

    Android学习路线:如何成长为高级工程师博主参加了 2014CSDN 博客之星评选 帮我投一票吧 点击给我投票前言之所以写这篇文章 是因为最近博客和我的开发群 nbsp nbsp 中 不少小伙伴都让我讲讲 android 学习路线 所以我决定写一篇博客 来说明这个问题 既然有不少小伙伴来咨询这个问题 说明大家都还是想快速地提高技术 毕竟技术的提高是职业发展中不可或缺的一步 技术好了 才能得到认可 才能升职加薪 一般来说 快速提高技术是不太

    2026年3月19日
    2
  • 中文金融领域情感词典构建「建议收藏」

    中文金融领域情感词典构建「建议收藏」2019年10月4日-6日Python爬虫与文本分析工作坊&课题申报高级研修班这篇文章是公众号关注者郝童鞋今早发给我的,在此谢谢郝童鞋。文章基于简单算法和人工…

    2022年8月23日
    15
  • logback使用

    logback使用

    2022年3月5日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号