Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  The InnoDB Storage Engine  /  InnoDB Troubleshooting

17.20 InnoDB 故障排除

以下是一些通用的InnoDB故障排除指南:

  • 当操作失败或您怀疑存在bug时,请查看 MySQL 服务器错误日志(见第7.4.2节,“错误日志”)。服务器错误消息参考提供了某些常见的InnoDB-特定错误的故障排除信息。

  • 如果失败与死锁相关,请使用innodb_print_all_deadlocks选项,以便将每个死锁的详细信息打印到 MySQL 服务器错误日志中。有关死锁的信息,请见第17.7.5节,“InnoDB 中的死锁”

  • 如果问题与InnoDB数据字典相关,请见第17.20.4节,“Troubleshooting InnoDB Data Dictionary Operations”

  • 在排错时,通常最好从命令提示符下运行 MySQL 服务器,而不是通过mysqld_safe或作为 Windows 服务。你可以然后看到mysqld在控制台中打印的内容,从而更好地了解发生了什么。 在 Windows 中,使用mysqld时添加--console选项,以将输出指向控制台窗口。

  • 启用 InnoDB 监控以获取问题信息(见第17.17节,“InnoDB Monitors”)。如果问题与性能相关,或者您的服务器似乎已挂起,您应该启用标准监控以打印关于 InnoDB 内部状态的信息。如果问题与锁定相关,请启用锁定监控。如果问题与表创建、表空间或数据字典操作相关,请查看InnoDB 信息架构系统表以检查 InnoDB 内部数据字典的内容。

    InnoDB 临时启用标准 InnoDB 监控输出在以下情况下:

    • 长信号等待

    • InnoDB 无法在缓冲池中找到空闲块

    • 缓冲池中超过67%的空间被锁定堆或自适应哈希索引占用

  • 如果您怀疑某个表是损坏的,可以对该表运行CHECK TABLE语句。