# B.3.2.9 通信错误和中止的连接
如果出现连接问题,例如通信错误或连接中断,请使用以下信息源来诊断问题:
错误日志。看第 5.4.2 节,“错误日志”.
一般查询日志。看第 5.4.3 节,“一般查询日志”.
这
中止_*
xxx*
和连接错误_*
xxx*
状态变量。看第 5.1.10 节,“服务器状态变量”.主机缓存,可使用性能模式访问
主机缓存
桌子。看第 5.1.12.3 节,“DNS 查找和主机缓存”, 和第 27.12.21.2 节,“主机_缓存表”.如果
log_error_verbosity
系统变量设置为 3,您可能会在错误日志中找到如下消息:
[Note] Aborted connection 854 to db: 'employees' user: 'josh'
如果客户端甚至无法连接,服务器会增加Aborted_connects
状态变量。由于以下原因,可能会发生不成功的连接尝试:
客户端尝试访问数据库但没有权限。
客户端使用了错误的密码。
连接数据包不包含正确的信息。
它需要超过
连接超时
秒获取连接数据包。看第 5.1.8 节,“服务器系统变量”.如果发生此类事情,则可能表明有人试图闯入您的服务器!如果启用了通用查询日志,则会将此类问题的消息记录到其中。
如果客户端成功连接但后来不正确地断开连接或被终止,则服务器增加
Aborted_clients
status 变量,并将 Aborted 连接消息记录到错误日志中。原因可能是以下任何一种:客户端程序没有调用
mysql_close()
(opens new window)在退出之前。客户已经睡了超过
等待超时
要么交互超时
秒而不向服务器发出任何请求。看第 5.1.8 节,“服务器系统变量”.客户端程序在数据传输过程中突然结束。
中止连接或中止客户端出现问题的其他原因:
这
max_allowed_packet
变量值太小或查询需要的内存比您分配的更多mysqld.看第 B.3.2.8 节,“数据包太大”.在 Linux 中使用以太网协议,半双工和全双工。一些 Linux 以太网驱动程序有这个错误。您应该通过在客户端和服务器机器之间使用 FTP 传输一个巨大的文件来测试这个错误。如果传输进入burst-pause-burst-pause 模式,您将遇到Linux 双工综合症。将网卡和集线器/交换机的双工模式切换为全双工或半双工,并测试结果以确定最佳设置。
导致读取中断的线程库问题。
配置错误的 TCP/IP。
以太网、集线器、交换机、电缆等出现故障。只有更换硬件才能正确诊断。