JDBC连接MySQL数据库失败的问题
MySQL有一个默认连接数最大值,可以通过命令:
show variables like '%max_connections%';
复制代码
来查看。当连接数超过这个最大值,后面的连接都会失败。
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
复制代码
可以通过命令:
SHOW PROCESSLIST
复制代码
来查看当前建立的连接
解决办法:
连接使用完后,一定要在代码中关闭连接!
try {
if (!connection.isClosed()) {
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
复制代码
增大可连接数: 找到在MySQL目录下的配置文件my.ini(windows平台),在[mysqld]下增加一行 max_connection,后面接的数量就是最大连接数。
[mysqld]
basedir= D:/mysql-5.7/mysql-5.7.21-winx64
datadir= D:/mysql-5.7/data
port = 3306
# default-character-set = utf8
character-set-server=utf8
max_connections=512
复制代码
更改配置文件后需要重启MySQL服务才能生效。
在任务管理器下找到MySQL服务(可能显示的是MySQL57),右键点击重新启动。