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  /  ...  /  How to Determine What Is Causing a Problem

B.3.1 如何确定问题的根源

当您遇到问题时,第一件事就是确定哪个程序或设备引起了问题:

  • 如果您遇到以下症状,那么可能是硬件问题(例如内存、主板、CPU 或硬盘)或内核问题:

    • 键盘不工作。这通常可以通过按下大写锁定键来检查。如果大写锁定灯不亮,您需要更换键盘。(在这样做之前,您应该重新启动计算机并检查键盘的所有电缆。)

    • 鼠标指针不移动。

    • 机器不响应远程机器的ping。

    • 与 MySQL 无关的其他程序不正常工作。

    • 您的系统意外重新启动。(一个用户级程序不应该能够使系统崩溃。)

    在这种情况下,您应该首先检查所有电缆并运行一些诊断工具来检查硬件!您还应该检查操作系统是否有补丁、更新或服务包可以解决问题。检查所有库(例如 glibc)是否最新。

    使用带 ECC 内存的机器来早期发现内存问题总是好的。

  • 如果您的键盘被锁定,您可能可以通过从另一个机器登录到您的机器并执行 kbd_mode -a 来恢复。

  • 请检查系统日志文件 (/var/log/messages 或类似)以了解问题的原因。如果您认为问题在 MySQL 中,您还应该检查 MySQL 的日志文件。见 第 7.4 节,“MySQL 服务器日志”

  • 如果您不认为是硬件问题,您应该尝试确定哪个程序引起了问题。使用 topps、任务管理器或类似程序来检查哪个程序占用了所有 CPU 或锁定了机器。

  • 使用 topdf 或类似程序来检查您是否缺少内存、磁盘空间、文件描述符或其他关键资源。

  • 如果问题是某个失控进程,您可以尝试杀死它。如果它不愿意死亡,那么操作系统中可能存在 bug。

如果您已经检查了所有其他可能性并确定 MySQL 服务器或 MySQL 客户端引起了问题,那么是时候创建错误报告了,见 第 1.5 节,“如何报告错误或问题”。在错误报告中,尝试提供系统行为和您认为正在发生的事情的完整描述。也请说明为什么您认为 MySQL 引起了问题。考虑本章节中描述的所有情况。使用 复制和粘贴 方法来记录程序和日志文件中的所有输出和错误信息。

尝试详细描述哪个程序不工作和您看到的所有症状。我们过去曾经收到过许多错误报告,只是简单地写道 系统不工作。 这提供了我们没有关于问题是什么的信息。

如果程序失败了,总是有用的知道以下信息:

  • 该程序是否出现了段错误(是否转储了核心)?

  • 该程序是否占用了所有可用的 CPU 时间?使用 top 检查。让程序运行一段时间,它可能只是在执行某些计算密集型任务。

  • 如果 mysqld 服务器引起了问题,您能否使用 mysqladmin -u root pingmysqladmin -u root processlist 从中获得任何响应?

  • 当您尝试连接到 MySQL 服务器时,客户端程序说了什么?(例如,使用 mysql。)客户端是否卡住?您是否从程序中获得了任何输出?

当发送错误报告时,您应该遵循 第 1.5 节,“如何报告错误或问题” 中描述的格式。