记录一次mysql问题 too many connections 以及nodejs mysql的小优化

  • 问题一:mysql 报错 too many connections,然后报错程序中断

问题原因:后台并发突增,创建太多的mysql连接然后程序报错中断。之前一直mysql8.0使用的是默认配置没有优化。这次优化2点。

  1. mysql连接数量,扩大到1000.
  2. mysql的连接时长以及超时时长。一般可以设置为5分钟左右就好了
show variables like "max_connections"; //最大连接数查看
set GLOBAL max_connections=1000; //最大连接数设置
show global variables like 'wait_timeout'; //查看非交互式连接最大时长
set global wait_timeout=300; //设置为300s
show global variables like 'interactive_timeout'; //查看交互式连接最大时长
set global interactive_timeout=500; //设置为500s
  • 问题二:nodejs mysql库报错  undefine can not release

问题原因:有可能是连接释放错误,可能自动被mysql释放了,然后出错。也有可能是connection.release()本身有问题有可能不适用于连接池。这边两种方式可以试试。

  1. 如果是连接是undefine,然后没有release属性。我们可以在释放前加一个判断是不是undefine
  2. 如果是connection.release()这种方法不适用于连接池。我们可以换一种方法。
    //第一种解决办法 在release前进行一个判断
    connection && connection.release();
    //第二种方法 使用连接池的释放方式
    pool.releaseConnection(connection)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值