mysql报错Got an error writing communication packets?

 错误描述


请问各位大佬,最近在使用k8s部署mysql进行读写的时候,发现错误日志有出现如下报错:
 

Got an error reading communication packets

Got an error writing communication packets

Aborted connection 52628 to db: 'kangkang' user: 'root' host: '119.123.49.227' (Got an error reading communication packets)


实际情况如下

k8s部署的mysql出现报错Got an error writing communication packets

寻找解决方法


然后我去网上寻找相关解决办法,有找到以下方法:


一:修改max_allowed_packet
 

# 设置最大包大小
set global max_allowed_packet = 1024*1024*1024;
# 查看包大小
show variables like '%max_allowed_packet%';



 二:检查Aborted connection
 

mysql> show global status like '%Aborted%';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| Aborted_clients  | 15    |
| Aborted_connects | 23737 |
+------------------+-------+
2 rows in set (18.99 sec)



其中Aborted_clients


The number of connections that were aborted because the client died without closing the connection properly.
由于客户端未正确关闭连接而死亡的连接数。

Aborted_connects
The number of failed attempts to connect to the MySQL server.
连接MySQL服务器失败的次数。

 

思路:


可能我在客户端进行写入操作的时候,还没得到结果就关闭连接,导致Aborted connection,
但是我的写入操作确实成功;然后我尝试修改node.js的代码
 

router.get('/me', function (req, res) {
   function insertDb(){
     pool.getConnection(async (err,connection)=>{
      if (err) {
        throw err;
      }
      var user = {
        NAME: '隆隆',
        age: 17,
        pos: 'ope',
      };
      #等待写入完成
      await connection.query(`INSERT INTO staffs SET ?`, [user], (err, result) => {
        //如果有错误,抛出异常
        if (err) {
          console.log('查询失败');
          throw err;
        }
        //如果正常,开始查询
        console.log('正在插入数据');
        console.log(result);
        res.send(JSON.stringify(result));

      })
      #写入完成再关闭数据库连接
      connection.release();
    })
  }
  insertDb();
})


结果:

正在插入数据
OkPacket {
  fieldCount: 0,
  affectedRows: 1,
  insertId: 20,
  serverStatus: 2,
  warningCount: 0,
  message: '',
  protocol41: true,
  changedRows: 0
}


显示的是成功,客户端没有报错;
但是,服务端的错误日志却照常打印,
 

2021-04-27T03:48:47.545011Z 58366 [Note] Aborted connection 58366 to db: 'kangkang' user: 'root' host: '***.123.49.***' (Got an error reading communication packets)

2021-04-27T03:48:50.896244Z 58537 [Note] Got an error writing communication packets

2021-04-27T03:51:32.124178Z 58620 [Note] Aborted connection 58620 to db: 'kangkang' user: 'root' host: '***.123.49.***' (Got an error reading communication packets)

 

问题


客户端的mysql写入操作没有异常,结果也返回正确,但是服务端的mysql的错误日志为什么还是在报错呢?

 

感谢大佬们看到这里,如果你有解决思路或者解决方案,可以指点一二吗?谢谢大佬!

你检测一下是不是用户权限问题,或者网络之间是否ping通

connection对象连接太频繁了吧,这种操作一般放在后台由连接池管理呀,数据库操作也放在后台吧。

 您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y