与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 阅读 10 次 更新于 2025-07-20 20:32:22 我来答关注问题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日志的方法主要有两种:通过MySQL命令和使用mysqlbinlog工具。通过MySQL命令查看:MySQL的binlog日志记录了数据库的所有重要操作,但直接通过MySQL命令查看binlog内容的功能相对有限。可以通过查询MySQL的配置表来确认二进制日志是否已开启,但无法直接查看日志的详细内容。使用mysqlbinlog工具查看:...

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

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

  •  文暄生活科普 MySQL利用bin log恢复数据

    为了定位并恢复删除的数据,可以使用`show binlog events`命令,虽然这可能需要仔细分析日志内容。然而,更为便捷的方式是通过`mysqlbinlog`命令直接读取文件内容,然后在MySQL命令行中执行恢复操作。例如,如果你想恢复到a=4的记录,可以使用`--start-position`选项。执行恢复命令后,记得检查数据是否已成功...

  • 例如,可以使用如下命令:bashmysqlbinlog mysqlbin.000006 > 1.sql这会将mysqlbin.000006文件中的所有SQL语句导出到1.sql文件中。4. 编辑SQL文件: 打开导出的1.sql文件,找到误操作之前的所有插入、更新等语句。这些是需要用来恢复数据的SQL语句。 或者,使用mysqlbinlog的startposition和stopposition选项...

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

mySQL相关话题

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