与mysqlbinlog命令使用相关的2个小问题

1、MySQL 数据库提供查看二进制日志 binlog 内容的命令是 mysqlbinlog,常用的命令如下:mysqlbinlog -vv bin.000668 | less mysqlbinlog -vv bin.000668 --start-datetime="2023-11-16 14:15:00" --stop-datetime="2023-11-16 14:15:00" | less 但有时会出现错误:mysqlbinlog: Error ...
与mysqlbinlog命令使用相关的2个小问题
1、MySQL 数据库提供查看二进制日志 binlog 内容的命令是 mysqlbinlog,常用的命令如下:

mysqlbinlog -vv bin.000668 | less

mysqlbinlog -vv bin.000668 --start-datetime="2023-11-16 14:15:00" --stop-datetime="2023-11-16 14:15:00" | less

但有时会出现错误:mysqlbinlog: Error writing file '/tmp/tmp.wOdzVS' (Errcode: 28 - No space left on device)

错误原因:binlog 解析后内容过大,导致 mysqlbinlog 默认解析后的临时文件存放路径 /tmp 空间不足。

解决方法:解析前手动指定临时文件存放路径,保证空间足够,注意参数 TMPDIR,不能用小写,如下:export TMPDIR=/opt/mysql3306/tmp

mysqlbinlog -vv bin.000668 | less

2、在查看 binlog 或者 mysqldump 导出 sql 文本时,经常看到如下格式的注释语句:

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE */

/*!80000 SET SESSION information_schema_stats_expiry=0 */

/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */

对后面跟的5位数字好奇吗?binlog 为什么需要这串数字?

这5位数字是 MySQL 版本指示器,与数据库版本的对应规则为:'/' '*' '!', 后跟主版本号(VERSION_MAJOR)、小版本号(VERSION_MINOR)、Patch号(VERSION_PATCH)。

示例:32302 -> 3.23.02,50738 -> 5.7.38,80025 -> 8.0.25。

例如,第一个注释语句的含义是:当 MySQL 数据库版本为 5.0.3 或更高版本时,将 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE 读取出来参与 SQL 语法解析,并最终被执行;当版本低于 5.0.3 时,该行语句被当成一个普通的注释。

带 /*!version-number SQL*/ 的可执行注释是为了解决不同 MySQL 版本之间的兼容问题。2024-08-10
mengvlog 阅读 271 次 更新于 2025-09-09 05:53:57 我来答关注问题0
  •  文暄生活科普 怎么让mysql-binglog文件每天生成一个

    1. 在 MySQL 的配置文件(通常是 my.cnf 或 my.ini)中,找到并设置或确保存在以下配置项:log_bin = /path/to/binlog_directory/mysql-bin 确保 binlog 日志目录存在,并且 MySQL 用户有写入权限。2. 通过设置 binlog_format 为 ROW 或 MIXED,以确保 binlog 记录的格式符合你的需求。例如:...

  •  翡希信息咨询 牛哇!MySQL中的日志“binlog”的三种格式这么好玩

    刷新binlog:执行flush logs;命令,手动刷新binlog,产生一个新的binlog日志文件。重置binlog:使用reset master;命令可以重置binlog日志文件,但如果有从机在运行,则无法执行该命令。查看binlog:由于binlog是二进制日志文件,直接打开无法查看。MySQL提供了mysqlbinlog命令来查看binlog内容。另外,还可以使...

  • MySQL查看binlog日志的方法主要有两种:通过MySQL命令和使用mysqlbinlog工具。通过MySQL命令查看:MySQL的binlog日志记录了数据库的所有重要操作,但直接通过MySQL命令查看binlog内容的功能相对有限。可以通过查询MySQL的配置表来确认二进制日志是否已开启,但无法直接查看日志的详细内容。使用mysqlbinlog工具查看:...

  •  翡希信息咨询 MySQL利用bin log恢复数据

    使用SHOW BINLOG EVENTS命令或分析mysqlbinlog的输出内容,定位与误删数据相关的事件。这可能需要仔细分析日志内容,以找到误删数据前后的关键事件。执行恢复操作:一旦找到误删数据前的关键事件,可以使用mysqlbinlog命令结合startposition和stopposition选项来读取并生成恢复所需的SQL语句。将生成的SQL语句在MySQL...

  •  文暄生活科普 MySQL日志系统深入解析:Redo Log, Undo Log与Binlog

    如何删除可以通过PURGE BINARY LOGS命令手动删除指定的或过期的Binlog文件,或者使用RESET MASTER删除全部日志(慎用)。综上所述,Redo Log、Undo Log和Binlog各自承担着不同的职责,共同维护着MySQL数据库的稳定运行和数据一致性。理解这些日志的工作原理对于数据库管理和优化至关重要。

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部