# B.3.2.9 通信错误和中止的连接

如果出现连接问题,例如通信错误或连接中断,请使用以下信息源来诊断问题:

[Note] Aborted connection 854 to db: 'employees' user: 'josh'

如果客户端甚至无法连接,服务器会增加Aborted_connects状态变量。由于以下原因,可能会发生不成功的连接尝试:

  • 客户端尝试访问数据库但没有权限。

  • 客户端使用了错误的密码。

  • 连接数据包不包含正确的信息。

  • 它需要超过连接超时秒获取连接数据包。看第 5.1.8 节,“服务器系统变量”.

    如果发生此类事情,则可能表明有人试图闯入您的服务器!如果启用了通用查询日志,则会将此类问题的消息记录到其中。

    如果客户端成功连接但后来不正确地断开连接或被终止,则服务器增加Aborted_clientsstatus 变量,并将 Aborted 连接消息记录到错误日志中。原因可能是以下任何一种:

  • 客户端程序没有调用mysql_close() (opens new window)在退出之前。

  • 客户已经睡了超过等待超时要么交互超时秒而不向服务器发出任何请求。看第 5.1.8 节,“服务器系统变量”.

  • 客户端程序在数据传输过程中突然结束。

    中止连接或中止客户端出现问题的其他原因:

  • max_allowed_pa​​cket变量值太小或查询需要的内存比您分配的更多mysqld.看第 B.3.2.8 节,“数据包太大”.

  • 在 Linux 中使用以太网协议,半双工和全双工。一些 Linux 以太网驱动程序有这个错误。您应该通过在客户端和服务器机器之间使用 FTP 传输一个巨大的文件来测试这个错误。如果传输进入burst-pause-burst-pause 模式,您将遇到Linux 双工综合症。将网卡和集线器/交换机的双工模式切换为全双工或半双工,并测试结果以确定最佳设置。

  • 导致读取中断的线程库问题。

  • 配置错误的 TCP/IP。

  • 以太网、集线器、交换机、电缆等出现故障。只有更换硬件才能正确诊断。

    也可以看看第 B.3.2.7 节,“MySQL 服务器已消失”.