当您遇到问题时,第一件事就是确定哪个程序或设备引起了问题:
-
如果您遇到以下症状,那么可能是硬件问题(例如内存、主板、CPU 或硬盘)或内核问题:
-
键盘不工作。这通常可以通过按下大写锁定键来检查。如果大写锁定灯不亮,您需要更换键盘。(在这样做之前,您应该重新启动计算机并检查键盘的所有电缆。)
-
鼠标指针不移动。
-
机器不响应远程机器的ping。
-
与 MySQL 无关的其他程序不正常工作。
-
您的系统意外重新启动。(一个用户级程序不应该能够使系统崩溃。)
在这种情况下,您应该首先检查所有电缆并运行一些诊断工具来检查硬件!您还应该检查操作系统是否有补丁、更新或服务包可以解决问题。检查所有库(例如
glibc
)是否最新。使用带 ECC 内存的机器来早期发现内存问题总是好的。
-
-
如果您的键盘被锁定,您可能可以通过从另一个机器登录到您的机器并执行
kbd_mode -a
来恢复。 -
请检查系统日志文件 (
/var/log/messages
或类似)以了解问题的原因。如果您认为问题在 MySQL 中,您还应该检查 MySQL 的日志文件。见 第 7.4 节,“MySQL 服务器日志”。 -
如果您不认为是硬件问题,您应该尝试确定哪个程序引起了问题。使用 top、ps、任务管理器或类似程序来检查哪个程序占用了所有 CPU 或锁定了机器。
-
使用 top、df 或类似程序来检查您是否缺少内存、磁盘空间、文件描述符或其他关键资源。
-
如果问题是某个失控进程,您可以尝试杀死它。如果它不愿意死亡,那么操作系统中可能存在 bug。
如果您已经检查了所有其他可能性并确定 MySQL 服务器或 MySQL 客户端引起了问题,那么是时候创建错误报告了,见 第 1.5 节,“如何报告错误或问题”。在错误报告中,尝试提供系统行为和您认为正在发生的事情的完整描述。也请说明为什么您认为 MySQL 引起了问题。考虑本章节中描述的所有情况。使用 “复制和粘贴” 方法来记录程序和日志文件中的所有输出和错误信息。
尝试详细描述哪个程序不工作和您看到的所有症状。我们过去曾经收到过许多错误报告,只是简单地写道 “系统不工作。” 这提供了我们没有关于问题是什么的信息。
如果程序失败了,总是有用的知道以下信息:
-
该程序是否出现了段错误(是否转储了核心)?
-
该程序是否占用了所有可用的 CPU 时间?使用 top 检查。让程序运行一段时间,它可能只是在执行某些计算密集型任务。
-
如果 mysqld 服务器引起了问题,您能否使用 mysqladmin -u root ping 或 mysqladmin -u root processlist 从中获得任何响应?
-
当您尝试连接到 MySQL 服务器时,客户端程序说了什么?(例如,使用 mysql。)客户端是否卡住?您是否从程序中获得了任何输出?
当发送错误报告时,您应该遵循 第 1.5 节,“如何报告错误或问题” 中描述的格式。