java.sql.SQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: "Too many connections"
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:111)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:446)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:239)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:188)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:359)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:201)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:470)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:100)
	at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:81)
	at com.baomidou.dynamic.datasource.creator.hikaricp.HikariDataSourceCreator.createDataSource(HikariDataSourceCreator

一、问题原因

数据库的连接问题,可能由于连接数过多导致的。

二、查找过程

1、通过如下命令查看连接数

 show global status like 'Thread%';

在这里插入图片描述

Threads_cached:MySQL管理的线程池中还有多少可以被复用的资源。
Threads_connected:这个数值指的是打开的连接数。
Threads_created:表示创建过的线程数。
Threads_running:这个数值指的是激活的连接数

2、查询数据库设置的最大连接数

show variables like 'max_connections';

在这里插入图片描述
Threads_connected152已经超过了最大连接数max_connections151。
因而,我们需要修改最大连接数。

三、解决问题,修改最大连接数

1、执行命令修改最大连接数

1.1、执行命令

set GLOBAL max_connections=1000;

在这里插入图片描述

1.2、连接数已变更

在这里插入图片描述

1.3、但是这个方法知识临时改变参数,重启服务器又会重置

2、修改mysql的my.ini文件信息

2.1、修改路径

路径:C:\ProgramData\MySQL\MySQL Server 8.0

在这里插入图片描述
2.2、解决、将大小由原先的151变更为1000
在这里插入图片描述

2.3、任务管理器重启mysql

在这里插入图片描述
2.4、处理完成!

在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐