-
问题一:mysql 报错 too many connections,然后报错程序中断
问题原因:后台并发突增,创建太多的mysql连接然后程序报错中断。之前一直mysql8.0使用的是默认配置没有优化。这次优化2点。
- mysql连接数量,扩大到1000.
- 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()本身有问题有可能不适用于连接池。这边两种方式可以试试。
- 如果是连接是undefine,然后没有release属性。我们可以在释放前加一个判断是不是undefine
- 如果是connection.release()这种方法不适用于连接池。我们可以换一种方法。
//第一种解决办法 在release前进行一个判断 connection && connection.release(); //第二种方法 使用连接池的释放方式 pool.releaseConnection(connection)