当您遇到问题时,首先应该找出是哪个程序或设备导致了问题。
如果您遇到以下任何一种症状,则可能是硬件问题(例如内存、主板、CPU 或硬盘)或内核问题:
键盘不工作。 这通常可以通过按 Caps Lock 键来检查。 如果 Caps Lock 指示灯没有变化,则必须更换键盘。 (在此之前,您应该尝试重新启动计算机并检查键盘的所有连接线。)
鼠标指针不动。
机器没有响应远程机器的 ping。
与 MySQL 无关的其他程序无法正常运行。
您的系统意外重启。 (有缺陷的用户级程序永远不应该能够关闭您的系统。)
在这种情况下,您应该首先检查所有连接线并运行一些诊断工具来检查您的硬件!您还应该检查您的操作系统是否有任何可能解决您的问题的补丁、更新或服务包。 还要检查所有库(例如
glibc
)是否都是最新的。使用带有 ECC 内存的机器始终是件好事,这样可以及早发现内存问题。
如果您的键盘被锁定了,您可以尝试通过从另一台机器登录到您的机器并执行
kbd_mode -a
来恢复。请检查您的系统日志文件(
/var/log/messages
或类似文件)以查找问题的原因。 如果您认为问题出在 MySQL 中,则还应该检查 MySQL 的日志文件。 请参阅 第 7.4 节 “MySQL 服务器日志”。如果您认为自己没有硬件问题,则应尝试找出是哪个程序导致了问题。 尝试使用 top、ps、任务管理器或一些类似程序来检查哪个程序占用了所有 CPU 或锁定了机器。
使用 top、df 或类似程序来检查您是否内存不足、磁盘空间不足、文件描述符不足或其他一些关键资源不足。
如果问题出在某个失控的进程上,您可以随时尝试终止它。 如果它不想终止,则操作系统中可能存在错误。
如果您已经检查了所有其他可能性,并得出结论认为是 MySQL 服务器或 MySQL 客户端导致了问题,那么现在是时候创建错误报告了,请参阅 第 1.6 节 “如何报告错误或问题”。 在错误报告中,请尽量完整地描述系统的行为方式以及您认为正在发生的事情。 还要说明为什么您认为是 MySQL 导致了问题。 考虑到本章中描述的所有情况。 说明在您检查系统时,任何问题究竟是如何出现的。 对程序和日志文件中的任何输出和错误消息使用 “复制和粘贴” 方法。
尽量详细描述哪个程序无法正常工作,以及您看到的所有症状。 我们过去收到过很多错误报告,只说 “系统无法工作。” 这并没有向我们提供任何有关问题可能是什么的信息。
如果程序失败,了解以下信息总是有用的:
有问题的程序是否发生了段错误(它是否转储了核心转储文件)?
该程序是否占用了所有可用的 CPU 时间? 使用 top 检查。 让程序运行一段时间,它可能只是在计算一些计算量很大的东西。
如果 mysqld 服务器导致了问题,您是否可以使用 mysqladmin -u root ping 或 mysqladmin -u root processlist 从它那里得到任何响应?
当您尝试连接到 MySQL 服务器时,客户端程序会说什么? (例如,尝试使用 mysql。) 客户端是否卡住了? 您是否从程序中获得了任何输出?
发送错误报告时,您应该遵循 第 1.6 节 “如何报告错误或问题” 中描述的概要。