如果出现连接问题,例如通信错误或连接中断,请使用以下信息来源诊断问题
错误日志。参见 第 7.4.2 节,“错误日志”.
常规查询日志。参见 第 7.4.3 节,“常规查询日志”.
状态变量
Aborted_
和xxx
Connection_errors_
。参见 第 7.1.10 节,“服务器状态变量”.xxx
主机缓存,可以通过性能模式的
host_cache
表访问。参见 第 7.1.12.3 节,“DNS 查询和主机缓存” 和 第 29.12.22.3 节,“host_cache 表”.
如果系统变量 log_error_verbosity
设置为 3,您可能会在错误日志中看到以下类似消息
[Note] Aborted connection 854 to db: 'employees' user: 'josh'
如果客户端甚至无法连接,服务器将增加 Aborted_connects
状态变量。连接尝试失败可能由以下原因造成
客户端尝试访问数据库,但没有相关权限。
客户端使用了错误的密码。
连接数据包不包含正确的信息。
获取连接数据包花费的时间超过了
connect_timeout
秒。参见 第 7.1.8 节,“服务器系统变量”.
如果发生这种情况,可能表示有人正在尝试入侵您的服务器!如果启用了常规查询日志,则这些类型的问题的日志将记录到该日志中。
如果客户端成功连接,但随后以不正确的方式断开连接或被终止,则服务器会增加 Aborted_clients
状态变量,并在错误日志中记录一条 连接中断 消息。原因可能是以下任何一种情况
客户端程序在退出之前没有调用
mysql_close()
。客户端在不向服务器发出任何请求的情况下休眠时间超过了
wait_timeout
或interactive_timeout
秒。参见 第 7.1.8 节,“服务器系统变量”.客户端程序在数据传输过程中突然终止。
连接中断或客户端中断的其他原因
系统变量
max_allowed_packet
的值太小,或者查询需要的内存超过了为 mysqld 分配的内存。参见 第 B.3.2.8 节,“数据包太大”.在 Linux 上使用以太网协议,半双工和全双工。某些 Linux 以太网驱动程序存在此错误。您应该通过在客户端和服务器机器之间使用 FTP 传输大型文件来测试此错误。如果传输以突发-暂停-突发-暂停模式进行,则您正在遇到 Linux 双工综合症。将您的网卡和集线器/交换机的双工模式都切换为全双工或半双工,并测试结果以确定最佳设置。
线程库出现问题,导致读操作中断。
TCP/IP 配置错误。
以太网、集线器、交换机、电缆等出现故障。只有更换硬件才能正确诊断这个问题。