以下一般准则适用于解决
InnoDB
问题:
当操作失败或您怀疑有错误时,请查看 MySQL 服务器错误日志(请参阅第 5.4.2 节,“错误日志”)。 Server Error Message Reference提供了一些
InnoDB
您可能遇到的常见特定错误的故障排除信息。如果失败与 死锁有关,请在启用该选项的情况下运行,
innodb_print_all_deadlocks
以便将有关每个死锁的详细信息打印到 MySQL 服务器错误日志中。有关死锁的信息,请参阅第 15.7.5 节,“InnoDB 中的死锁”。如果问题与
InnoDB
数据字典有关,请参阅 第 15.21.4 节,“InnoDB 数据字典操作故障排除”。排除故障时,通常最好从命令提示符运行 MySQL 服务器,而不是通过 mysqld_safe或作为 Windows 服务运行。然后您可以看到mysqld打印到控制台的内容,从而更好地了解正在发生的事情。在 Windows 上,使用将输出定向到控制台窗口 的 选项启动mysqld 。
--console
启用
InnoDB
监视器以获取有关问题的信息(请参阅 第 15.17 节,“InnoDB 监视器”)。如果问题与性能有关,或者您的服务器似乎挂起,您应该启用标准监视器来打印有关InnoDB
. 如果问题出在锁上,请启用锁监视器。如果问题与表创建、表空间或数据字典操作有关,请参阅 InnoDB 信息架构系统表以检查InnoDB
内部数据字典的内容。InnoDB
InnoDB
在以下条件下 暂时启用标准 监视器输出:长时间的信号量等待
InnoDB
在缓冲池中找不到空闲块超过 67% 的缓冲池被锁堆或自适应哈希索引占用
如果您怀疑某个表已损坏,请
CHECK TABLE
在该表上运行。