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

MySQL 5.7连接中止报错求助:Node.js应用运行异常

修复MySQL 5.7 "Got an error reading communication packets" 连接中断问题

我之前在维护Node.js+MySQL 5.7的项目时,刚好碰到过一模一样的报错,结合当时的排查经验,给你几个靠谱的修复方向:

先明确问题根源

你能正常登录MySQL控制台,说明MySQL服务本身是健康的,报错**"Got an error reading communication packets"** 基本都是应用与数据库的交互配置不匹配,或者网络/超时参数设置不合理导致的,不用再折腾重装MySQL啦。


1. 检查Node.js MySQL驱动的连接配置

先看你用的是mysql还是mysql2模块,重点调整超时和保活相关参数,默认配置很容易在长查询或高并发下断连:

  • 如果是单个连接,试试加上这些配置:
    const mysql = require('mysql'); // 或 require('mysql2')
    const conn = mysql.createConnection({
      host: 'localhost',
      user: 'root',
      password: '你的密码',
      database: 'baza',
      connectTimeout: 60000, // 延长连接超时到60秒
      acquireTimeout: 60000,
      timeout: 60000,
      keepAlive: true, // 开启TCP长连接保活
      keepAliveInitialDelay: 30000 // 30秒后开始发送保活包
    });
    
  • 如果用连接池,还要检查连接池的connectionLimit(不要设置过小)、waitForConnections(设为true避免直接报错):
    const pool = mysql.createPool({
      // 其他基础配置
      connectionLimit: 10, // 根据你的并发量调整
      waitForConnections: true,
      queueLimit: 0
    });
    

另外,务必确保每次查询后正确释放连接(连接池模式下调用conn.release(),单连接模式下用conn.end()关闭闲置连接)。

2. 调整MySQL的网络参数配置

编辑MySQL的配置文件(Ubuntu下通常是/etc/mysql/mysql.conf.d/mysqld.cnf),修改以下关键参数:

# 增大允许的数据包大小,避免大查询/传输时截断
max_allowed_packet = 64M

# 延长闲置连接超时时间(和驱动超时保持一致)
wait_timeout = 28800
interactive_timeout = 28800

# 延长读写操作的超时时间
net_read_timeout = 60
net_write_timeout = 60

修改后重启MySQL服务:

sudo service mysql restart

3. 排查应用的查询逻辑

  • 有没有执行超耗时的查询?比如未加索引的大数据量查询,这类操作会导致连接长时间占用,触发超时断连。可以用EXPLAIN分析慢查询,优化索引或拆分查询。
  • 有没有未正确关闭的连接?比如代码里遗漏了连接释放逻辑,导致连接池耗尽,MySQL主动断开闲置连接。

4. 系统层面的排查

  • 检查Ubuntu防火墙:暂时关闭防火墙测试(sudo ufw disable),如果问题解决,再重新配置允许MySQL端口(默认3306)的访问规则。
  • 调整系统文件句柄限制:执行ulimit -n看当前值,如果低于65535,临时调整用ulimit -n 65535,永久调整需要编辑/etc/security/limits.conf,添加:
    mysql soft nofile 65535
    mysql hard nofile 65535
    

按这个顺序排查,大概率能解决问题,我当时就是调整了驱动的保活配置和MySQL的max_allowed_packet参数后解决的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:05:54