当你遇到问题时,首先要做的是找出导致问题的程序和设备部件:
· 如果遇到下述征兆之一,或许是因为硬件问题(如内存、主板、CPU或硬盘)或内核问题:
1. 键盘不工作。正常情况下可通过按Caps Lock建进行检查。如果Caps Lock的点亮状态未改变,就需要更换键盘(在此之前,应尝试重启计算机,并检查与键盘相连的所有电缆)。
2. 鼠标指针不移动。
3. 机器未对远程机器的Ping命令做出应答。
4. 与MySQL无关的其他程序工作不正常。
5. 系统意外重启(有问题的用户级程序应不能使系统出现严重问题)。
在该情况下,应检查所有的电缆并运行某些诊断工具,对你的硬件进行检查!此外,还应检查是否有能够解决问题的、适用于你的操作系统的补丁、更新或服务包。请检查所有的库(如glibc)是否是最新的。
使用配备ECC内存的机器以便尽早发现问题总是个好主意。
· 如果键盘已锁定,可从另一台机器登录到你的机器,并执行kbd_mode –a,或许能恢复。
· 请检查系统的日志文件(/var/log/messages或类似物)以找出问题的原因。如果你认为问题出在MySQL中,应检查MySQL的日志文件。请参见5.11节,“MySQL日志文件”。
· 如果你不认为存在硬件问题,应尝试找出导致问题的原因。请使用top、ps、任务管理器或类似程序,以检查哪个程序占用了所有CPU时间或锁定了机器。
· 使用top、df或类似程序检查是否内存不够、磁盘空间不足、文件描述符缺乏、或其他关键资源缺少。
· 如果问题是失去控制的进程,应尝试杀死它。如果杀不死进程,或许是因为操作系统中存在缺陷。
如果在检查了所有其他可能性之后,并得出结论问题是由MySQL服务器或MySQL客户端导致的,应创建提供给我方的邮件列表或支持团队的缺陷报告。在缺陷报告中,请详细描述系统的行为,以及你认为发生了什么情况。+3.
还应阐明为什么你认为是MySQL导致了问题。请考虑本章介绍的所有情况。准确阐明当你检查系统时问题是如何出现的。对于程序和日志文件的任何输出和错误消息,请使用“复制和粘贴”方法。
尽量详细描述不工作的程序,以及你所见到的所有征兆。我们过去收到过很多仅说明“系统不工作”的缺陷报告。这不会为我们提供有助于解决问题的信息。
如果程序失败,了解下述信息总是有用的:
· 有嫌疑的程序是否出现了分段故障(是否转储内核)?
· 程序是否占用了所有可用的CPU时间?用top.进行检查。让程序运行一段时间,或许能简单地评估某些事是否是计算密集性的。
· 如果问题是因mysqld服务器导致的,使用mysqladmin -u root ping或mysqladmin -u root processlist是否能获得服务器的响应?
· 当你尝试连接到MySQL服务器(例如,mysql)时,客户端程序给出的信息是什么?客户端是否堵塞?是否获得了来自程序的任何输出?
发送缺陷报告时,请遵循1.7.1.2节,“请教问题或通报缺陷”中给出的说明。