Documentation Home

B.3.1 如何确定导致问题的原因

当您遇到问题时,您应该做的第一件事是找出导致它的程序或设备:

  • 如果您出现以下症状之一,那么很可能是硬件问题(如内存、主板、CPU 或硬盘)或内核问题:

    • 键盘不工作。这通常可以通过按 Caps Lock 键来检查。如果 Caps Lock 指示灯没有变化,则必须更换键盘。(在执行此操作之前,您应该尝试重新启动计算机并检查键盘的所有电缆。)

    • 鼠标指针不动。

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

    • 其他与 MySQL 无关的程序无法正常运行。

    • 您的系统意外重启。(一个错误的用户级程序应该永远无法关闭你的系统。)

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

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

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

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

  • 如果您认为自己没有硬件问题,则应尝试找出导致问题的程序。尝试使用 topps、任务管理器或一些类似的程序来检查哪个程序正在占用所有 CPU 或正在锁定机器。

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

  • 如果问题是一些失控的进程,你总是可以尝试杀死它。如果它不想死,则可能是操作系统存在错误。

如果您检查了所有其他可能性并得出结论是 MySQL 服务器或 MySQL 客户端导致了问题,那么是时候创建错误报告了,请参阅第 1.6 节,“如何报告错误或问题”。在错误报告中,尝试完整描述系统的行为方式以及您认为正在发生的事情。还要说明您认为 MySQL 导致问题的原因。考虑本章中描述的所有情况。当你检查你的系统时,准确地说明任何问题是如何出现的。对来自程序和日志文件的任何输出和错误消息使用复制和粘贴方法。

尝试详细描述哪个程序不起作用以及您看到的所有症状。我们过去收到过许多错误报告,仅指出系统无法正常工作。这没有向我们提供有关可能是什么问题的信息。

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

  • 有问题的程序是否出现了分段错误(是否转储核心)?

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

  • 如果mysqld服务器导致问题,您可以使用mysqladmin -u root pingmysqladmin -u root processlist从它那里得到任何响应吗?

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

发送错误报告时,您应该遵循第 1.6 节“如何报告错误或问题”中描述的大纲。