You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL Error Code:2013查询连接丢失问题求助(5.6.43-log版本)

解决MySQL Error 2013: Lost Connection During Query(大结果集场景)

核心问题分析

Error 2013是查询执行过程中客户端与服务器连接中断,但服务器端进程仍在运行,说明不是服务器主动终止连接,大概率是网络层面中断、客户端/中间件超时,或是服务器端隐性参数配置不到位导致。

排查与修复步骤

1. 修正参数拼写错误

你提到的net_ite_timeout是拼写错误,正确参数为net_write_timeout——这个参数控制服务器向客户端写数据的超时时间,大结果集传输时极易触发,建议设置:

net_write_timeout = 3600

2. 调大max_allowed_packet参数

当前设置的6710886(约6.4M)过小,大结果集传输时会因数据包超出限制导致连接中断,建议至少调至64M:

max_allowed_packet = 67108864

修改后需重启MySQL服务生效。

3. 排查网络层面问题

  • 确认客户端与服务器间网络稳定性,检查防火墙/路由器是否存在超时机制(部分设备默认TCP连接超时为300秒,会主动断开长时间无响应的连接)。
  • 在服务器本地执行相同查询,若本地执行正常,可确定问题出在网络或客户端侧。

4. 调整客户端侧超时设置

  • Workbench:除DBMS connections timeout interval外,需检查Edit > Preferences > SQL Editor中的Query Timeout,设置为0(禁用超时)或更大数值。
  • Java应用:调整JDBC连接参数,添加或修改connectTimeout与socketTimeout,示例:
jdbc:mysql://host:port/db?connectTimeout=3600000&socketTimeout=3600000

注意socketTimeout需设置足够大,避免客户端主动断开连接。

5. 检查服务器端额外参数

  • 确认interactive_timeout参数,该参数针对交互式连接(如Workbench),建议与wait_timeout保持一致:
interactive_timeout = 28800
  • 查看MySQL错误日志(error.log),排查是否存在OOM、磁盘IO过高等导致服务卡顿的情况。

6. 从根源优化查询

大结果集查询本身易引发超时问题,建议优化查询逻辑:

  • 避免SELECT *,仅查询所需字段。
  • 添加合适索引,减少查询扫描的数据量。
  • 分批次获取结果(如Java使用setFetchSize,Workbench用LIMIT分页查询)。

验证方法

修改参数后,先在服务器本地执行查询确认正常返回结果;再通过Workbench和Java应用分别测试,观察是否仍出现2013错误。

内容的提问来源于stack exchange,提问作者Anil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:02:48