#### 5.9.1.6 使用服务器日志查找 mysqld 中的错误原因

请注意，在开始之前[**mysqld**](mysqld.html)启用通用查询日志后，您应该检查所有表[**迈萨姆奇克**](myisamchk.html).看[第 5 章，*MySQL 服务器管理*](server-administration.html).

如果[**mysqld**](mysqld.html)死亡或挂起，你应该开始[**mysqld**](mysqld.html)启用通用查询日志。看[第 5.4.3 节，“一般查询日志”](query-log.html).什么时候[**mysqld**](mysqld.html)再次死亡，您可以检查日志文件的末尾以查找杀死的查询[**mysqld**](mysqld.html).

如果使用默认的通用查询日志文件，则日志在数据库目录中存储为`*`主机名`*。日志`在大多数情况下，它是日志文件中的最后一个查询被杀死[**mysqld**](mysqld.html)，但如果可能，您应该通过重新启动来验证这一点[**mysqld**](mysqld.html)并从[**mysql**](mysql.html)命令行工具。如果这可行，您还应该测试所有未完成的复杂查询。

你也可以试试命令[`解释`](explain.html)所有[`选择`](select.html)声明需要很长时间才能确保[**mysqld**](mysqld.html)正在正确使用索引。看[第 13.8.2 节，“解释声明”](explain.html).

您可以通过启动找到执行时间较长的查询[**mysqld**](mysqld.html)启用慢查询日志。看[第 5.4.5 节，“慢查询日志”](slow-query-log.html).

如果你找到文字`mysqld重新启动`在错误日志中（通常是一个名为`*`主机名`*。呃`) 您可能已经找到导致[**mysqld**](mysqld.html)失败。如果发生这种情况，您应该检查所有表格[**迈萨姆奇克**](myisamchk.html)（看[第 5 章，*MySQL 服务器管理*](server-administration.html))，并测试 MySQL 日志文件中的查询以查看是否失败。如果您发现这样的查询，请先尝试升级到最新的 MySQL 版本。如果这没有帮助，请报告错误，请参阅[第 1.6 节，“如何报告错误或问题”](bug-reports.html).

如果你已经开始[**mysqld**](mysqld.html)与[`myisam_recover_options`](server-system-variables.html#sysvar_myisam_recover_options)系统变量设置，MySQL 自动检查并尝试修复`MyISAM`表，如果它们被标记为“未正确关闭”或“崩溃”。如果发生这种情况，MySQL 会在`主机名.err`文件`'警告：检查表......'`其次是`警告：修复表`如果桌子需要修理。如果你得到很多这些错误，没有[**mysqld**](mysqld.html)之前意外死亡，那么有问题需要进一步调查。看[第 5.1.7 节，“服务器命令选项”](server-options.html).

当服务器检测到`MyISAM`表损坏，它将附加信息写入错误日志，例如源文件的名称和行号，以及访问表的线程列表。例子：`从 thread_id=1 得到错误，mi_dynrec.c:368`.这是包含在错误报告中的有用信息。

这不是一个好兆头，如果[**mysqld**](mysqld.html)确实意外死亡，但在这种情况下，您不应该调查`检查表...`消息，而是尝试找出原因[**mysqld**](mysqld.html)死了。
