当前位置: 首页 > 知识库问答 >
问题:

如何修复MySQL中的“max_user_connections”到达问题?

东门清夷
2023-03-14

有没有人知道在部署应用程序时会发生什么,为什么同时会有这么多的连接,而我只是在部署一个应用程序,而不是插入数据?

该项目是一个SparingBoot应用程序,所以我默认使用HikariCP作为连接池。我是唯一连接到数据库的用户

我没有声明某个JPA持久性单元。

下面是MVN clean Install上的日志

2021-02-21 14:50:40.153信息4792----[任务-1]com.zaxxer.hikari.hikaridatasource:HikariPool-1-开始...

2021-02-21 14:50:42.173信息4792---[task-1]com.zaxxer.hikari.hikaridatasource:hikaripool-1-start completed.

2021-02-21 14:50:42.235信息4792---[任务-1]org.hibernate.dialog.Dialect:hhh000400:使用方言:org.hibernate.dialog.mysql5方言

2021-02-21 14:50:42.306信息4792---[main]DeferredRepositoryInitializationListener:触发Spring数据存储库的延迟初始化?

2021-02-21 14:50:49.147信息4792---[任务-1]O.H.E.T.J.P.I.JTAPlatforMinitiator:HHH000490:使用JtaPlatform实现:[org.hibernate.engine.transaction.jta.platform.internal.noJTAPlatform]

2021-02-21 14:50:49.226信息4792---[任务-1]J.LocalContainerEntityManagerFactoryBean:为持久性单元“default”初始化了JPA EntityManagerFactory 2021-02-21

14:50:50.349信息4792----[main]DeferredRepositoryInitializationListener:Spring数据存储库已初始化!

2021-02-21 14:50:50.382信息4792---[main]C.D.Q.Q.QuizzJavaSpringApplicationTests:在15.982秒内启动QuizzJavaSpringApplicationTests(JVM运行17.371)[INFO]测试运行:1,失败:0,错误:0,跳过:0,已用时间:17.176 s-在com.douineau.qjsbr.QuizzJavaSpring.QuizzJavaSpringApplicationTests中

2021-02-21 14:50:51.047信息4792---[extShutdownHook]J.LocalContainerEntityManagerFactoryBean:关闭持久性单元“default”的JPA EntityManagerFactory

2021-02-21 14:50:51.058信息4792---[extShutdownHook]O.ss.Concurrent.ThreadPoolTaskExecutor:正在关闭ExecutorService“Application TaskExecutor”

2021-02-21 14:50:51.061信息4792---[extShutdownHook]com.zaxxer.hikari.hikaridataSource:HikariPool-1-已启动关闭...

2021-02-21 14:50:51.109信息4792---[extShutdownHook]com.zaxxer.hikari.hikaridatasource:HikariPool-1-关闭完成。

提前感谢您的支持。

共有1个答案

史逸春
2023-03-14

max_user_connections表示有太多的“用户”*试图连接到您的mysql服务器。

虽然可以按照下面的描述配置服务器以允许更多的连接:https://dev.mysql.com/doc/refman/8.0/en/user-resources.html检查了您在客户机中使用的设置(java代码和可能的通道池(CP)配置,很可能在*.properties文件中)。您的CP可以配置为具有更多的实际不需要的连接(连接与RPS不同),因此一个选项是尽可能减少客户端的连接数。这次您可能会看到这个错误,而过去您没有看到它的另一个原因是水平可伸缩性?是不是以前在N台服务器上运行代码,而现在使用的是N+M台服务器?在这种情况下,从java客户机到mysql服务器的连接总数将会增加,您有两个选项:增加到服务器的最大允许连接数,或者,如果合理的话,减少客户机(java应用程序)代码到mysql的连接数。

*“用户”--你可以有几个可以连接到MySQL的用户。userA的最大连接数饱和并不意味着userB不能连接。因此,如果您重用来自不同应用程序的相同mysql用户来连接到mysql,您只需为每个应用程序提供一个专用用户即可。

更新:

来自mysql文档:

允许到任何给定MySQL用户帐户的最大同时连接数。值0(默认值)表示“无限制”。这个变量有一个全局值,可以在服务器启动或运行时设置。它还具有一个只读会话值,该值指示应用于与当前会话关联的帐户的有效同时连接限制。会话值初始化如下:如果用户帐户具有非零的MAX_USER_CONNECTIONS资源限制,则会话MAX_USER_CONNECTIONS值设置为该限制。否则,会话max_user_connections值将设置为全局值。帐户资源限制是使用CREATE USER或ALTER USER语句指定的。参见第6.2.20节“设置账户资源限额”。

 类似资料:
  • 问题内容: 当我尝试登录phpMyAdmin时出现以下错误。 用户 __ 已经具有多个“ max_user_connections”活动连接 谁能让我知道如何从MySQL服务器端关闭这些数据库连接? 感谢您的时间! 问题答案: 在这里,我认为您可以解决您的问题 max_connections 另请阅读此http://dev.mysql.com/doc/refman/5.5/en/too-many-

  • 背景故事: 我在Mac上使用MAMP设置本地开发服务器和数据库,以创建WordPress站点。一切进展顺利。昨天,MySQL服务器没有启动,所以我根据StackOverflow的回答,从mysql56文件夹中删除了ib_logfile0、ib_logfile1和ibdata1文件。这引发了一系列事件,最终损坏了phpMyAdmin上的表。 我保留了ib_和数据库文件,并在重新安装MAMP后,将它们

  • 我只是从我当地的回购协议中克隆了一个Android项目,我很难“构建”它。也许它错过了一些外部图书馆,但我不知道。 在开始等级构建时,我得到以下信息: 我试着检查“清单”文件,但我找不到。我完全迷路了... 我很确定这是一个配置错误,因此我可以在这里找到所有的配置文件: settings.gradle代码 (来自项目文件夹内)的输出如下:

  • 创建表。( INT NOT NULL AUTO_INCREMENT, VARCHAR(45)为空, 主键()); 创建表。( 十进制(6,2)为空, 十进制(6,2)为空, VARCHAR(45)为空, 插入.(,,,)值(101、'joselin','1000','dexcity'); 插入.(,,,)值(102、“rusfal”,“0”,“donxes”);在.(,,,)中插入值(103、“r

  • 我正在使用reactjs构建一个前端唯一的基本天气应用程序。对于API请求,我使用Fetch API。在我的应用程序中,我从一个简单的API获取当前位置,它以JSON对象的形式给出了位置。但是当我通过获取API请求它时,我得到了这个错误。 所以我搜索并找到了多种解决方案来解决这个问题。 在Chrome启用CORS解决了这个错误,但是当我在heroku上部署应用程序时,我如何通过移动设备访问它,而不

  • 我安装了Jenkins作为docker容器。在Jenkins全局工具配置中,添加MAVEN_HOME(/usr/share/MAVEN)并选中“自动安装”。当我按下Build Now时,会出现以下错误: 我没有/var/jenkins_home/workspace/MavenProject目录。并且此目录位于具有完全权限的根帐户下。你知道我该怎么修吗?