Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

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

17.20 InnoDB 故障排除

以下是排除 InnoDB 问题的一般指南:

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

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

  • 如果问题与 InnoDB 数据字典相关,请参见 第 17.20.4 节,“排除 InnoDB 数据字典操作”

  • 在排除时,通常最好从命令提示符下运行 MySQL 服务器,而不是通过 mysqld_safe 或作为 Windows 服务。这样您可以看到 mysqld 打印到控制台的内容,从而更好地了解正在发生的情况。在 Windows 上,使用 --console 选项启动 mysqld,将输出重定向到控制台窗口。

  • 启用 InnoDB 监控以获取问题信息(见 第 17.17 节,“InnoDB 监控”)。如果问题是性能相关的,或者您的服务器似乎卡住了,请启用标准监控以打印 InnoDB 的内部状态信息。如果问题与锁相关,请启用锁监控。如果问题与表创建、表空间或数据字典操作相关,请参见 InnoDB INFORMATION_SCHEMA 模式对象表,以检查 InnoDB 内部数据字典的内容。

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

    • 长时间的信号等待

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

    • 缓冲池的 67% 以上被锁堆或自适应哈希索引占用

  • 如果您怀疑表是 corrupt 的,请在该表上运行 CHECK TABLE