• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • 通信错误和连接异常终止

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

    • 错误日志。请参见“MySQL服务器错误日志”。
    • 常规查询日志。请参见“mysqldumpslow 汇总慢查询日志文件”。
    • 该和状态变量。请参见“服务器状态变量”。Aborted_xxxConnection_errors_xxx
    • 主机缓存,可以使用“性能模式”host_cache表进行访问。请参见“ DNS查找优化和主机缓存”和“ host_cache表”。

    如果log_error_verbosity系统变量设置为3,则可能会在错误日志中找到以下消息:

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

    如果客户端甚至无法连接,服务器将增加Aborted_connects状态变量。由于以下原因,可能会导致连接尝试失败:

    • 客户端尝试访问数据库,但没有访问权限。
    • 客户端使用了错误的密码。
    • 连接数据包不包含正确的信息。
    • connect_timeout获取连接数据包需要花费几秒钟的时间。请参见“服务器系统变量”。

    如果发生此类情况,则可能表明有人试图闯入您的服务器!如果启用了常规查询日志,则会将有关这些类型问题的消息记录到该日志中。

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

    • 客户端程序mysql_close()在退出前未调用。
    • 客户端在没有向服务器发出任何请求的情况下休眠了超过wait_timeoutinteractive_timeout几秒钟。请参见“服务器系统变量”。
    • 客户端程序在数据传输过程中突然结束。

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

    • max_allowed_packet变量的值太小或查询需要比你分配更多的内存的mysqld。请参见第B.4.2.9节“数据包太大”。
    • 在半双工和全双工的Linux上使用以太网协议。某些Linux以太网驱动程序存在此错误。您应该通过在客户端计算机和服务器计算机之间使用FTP传输大文件来测试此错误。如果传输以“突发-暂停-突发-暂停”模式进行,则您正在遇到Linux双工综合症。将网卡和集线器/交换机的双工模式都切换为全双工或半双工,然后测试结果以确定最佳设置。
    • 线程库出现问题,导致读取中断。
    • 配置错误的TCP / IP。
    • 以太网,集线器,交换机,电缆等故障。仅通过更换硬件才能正确诊断。

    另请参见第B.4.2.8节“ MySQL服务器已消失”。