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