Skip to content

com.mysql.cj.exceptions.CJException: Too many connections

🏷️ MySQL

今天更新测试环境服务,启动时报了如下错误:

master - Exception during pool initialization.
java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:111)
......
Caused by: com.mysql.cj.exceptions.CJException: Too many connections

通过如下命令查看连接数,发现当前一共有 151 条记录。

sql
SHOW PROCESSLIST;

而 151 正好是 MySQL 5.7 和 8.0 中 max_connections 的默认值。151 表示可以 150 个客户端连接,再加上一个保留给 root 用户的连接。

my.cnf 中添加以下配置即可以调整最大连接数的数量:

ini
[mysqld]
max_connections=500

不过这种方式需要重启 MySQL 才能生效。也可以通过命令动态修改:

sql
SET GLOBAL max_connections = 500;

查看配置是否已修改:

sql
SHOW VARIABLES LIKE 'max_connections';