Documentation Home
MySQL 8.0 参考手册  / 第 15 章 InnoDB 存储引擎  /  14.22 InnoDB 故障排除

14.22 InnoDB 故障排除

以下一般准则适用于解决 InnoDB问题:

  • 当操作失败或您怀疑有错误时,请查看 MySQL 服务器错误日志(请参阅第 5.4.2 节,“错误日志”)。 Server Error Message Reference提供了一些 InnoDB您可能遇到的常见特定错误的故障排除信息。

  • 如果失败与 死锁有关,请在启用该选项的情况下运行, innodb_print_all_deadlocks 以便将有关每个死锁的详细信息打印到 MySQL 服务器错误日志中。有关死锁的信息,请参阅第 14.7.5 节,“InnoDB 中的死锁”

  • InnoDB与数据字典 相关的问题包括失败CREATE TABLE 语句(孤立表文件)、无法打开 InnoDB文件和系统找不到指定路径错误。有关此类问题和错误的信息,请参阅 第 14.22.3 节,“InnoDB 数据字典操作故障排除”

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

  • 启用InnoDB监视器以获取有关问题的信息(请参阅 第 14.18 节,“InnoDB 监视器”)。如果问题与性能有关,或者您的服务器似乎挂起,您应该启用标准监视器来打印有关InnoDB. 如果问题出在锁上,请启用锁监视器。如果问题与表创建、表空间或数据字典操作有关,请参阅 InnoDB 信息架构系统表以检查InnoDB内部数据字典的内容。

    InnoDBInnoDB在以下条件下 暂时启用标准 监视器输出:

    • 长时间的信号量等待

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

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

  • 如果您怀疑某个表已损坏,请 CHECK TABLE在该表上运行。