首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SHOW ENGINE INNODB STATUS 信息截断问题:两种完整输出方案

     編輯:MySQL 資料庫相關知識

InnoDB 监控输出被截断?客户端 64KB 限制破解法

执行 SHOW ENGINE INNODB STATUS\G 时,死锁信息过长导致后续内容丢失。根因是 MySQL 交互式客户端硬编码 64KB 输出上限(Bug #19825)。

方案一:启用 innodb_status_file 写入文件(推荐)

修改 my.cnf [mysqld] 节:

innodb_status_file = 1

重启 MySQL 后,每次执行 SHOW ENGINE INNODB STATUS 会在数据目录生成 innodb_status. 文件,包含完整输出,无长度限制。

方案二:创建 innodb_monitor 表输出到错误日志

CREATE TABLE innodb_monitor (id INT) ENGINE=INNODB;

创建后,InnoDB 会周期性(约每 15 秒)将完整监控信息写入 .err 错误日志。不再需要时 DROP TABLE innodb_monitor; 即可停止。

对比与建议

维度innodb_status_fileinnodb_monitor
输出触发手动执行 SHOW自动周期性
查看方式读取数据目录文件读取 error log
持久化单次快照持续流
推荐场景死锁现场排查长期性能基线采集

生产环境建议常驻 innodb_monitor 表,配合日志采集系统(ELK/Filebeat)集中分析。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved