💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
- 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
- 导航 - 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等- 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等- 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等- 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作- 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
博客目录
问题描述
解决 MySQL 报错:
Data source rejected establishment of connection, message from server: "Too many connectio_MySQL
在做项目时,创建多个数据库进行连接,这个报错也很容易理解,MySQL 连接数不够用了
这个错误消息涉及到数据库连接方面的问题,具体来说是关于连接数的限制。
- SQLState:“08004”:这是一个标准的 SQL 状态码,通常表示连接错误或数据库不可用。
- vendorCode:1040:这是特定于数据库供应商的错误代码,这里是 MySQL 数据库的错误代码。在 MySQL 中,错误代码 1040 表示连接数过多的问题。
- detailMessage:这是详细的错误信息,指出了具体的问题。在这种情况下,服务器返回的消息是:“Data source rejected establishment of connection, message from server: “Too many connections””,翻译过来就是"数据源拒绝建立连接,服务器消息:连接太多"。
这个错误发生在尝试建立数据库连接时,但由于连接数已经达到了数据库服务器的限制,所以连接被拒绝。这可能是因为数据库服务器同时处理了太多的连接请求,或者系统配置设置了连接数的上限。解决方法通常包括增加数据库服务器的最大连接数配置,优化数据库连接的使用,或者调整应用程序的连接管理策略。
报错信息
报错信息如下:
“SQLState”:“08004”,“vendorCode”:1040,“detailMessage”:
“Data source rejected establishment of connection,message from server: “Too many connections””
错误原因
根本原因是 MySQL 连接数不够用了
但也要分情况看为什么不够用了
1. 是 MySQL 的 max_connections 属性配置太小?
2. 还是是多次 insert,update 操作没有关闭 session?
解决方案
我们要知道,MySQL 版本的不同,可设置的最大连接数范围也是有所区别的:
- MySQL5.5 ~ 5.7:默认的最大连接数都是 151,上限为:100000
- MySQL5.0 版本:默认的最大连接数为 100,上限为 16384
- MySQL8.0 版本: 默认的最大连接数是 151
查看 MySQL 版本
SELECT VERSION();
如下,我这里是基于 MySQL 8.0.35,那么默认的最大连接数应该是 151
查看当前 MySQL 最大连接数限制
show variables like 'max_connections';
当前最大连接数限制是 151,显示 1500,是因为我修改过了
确定连接数不够原因
如上所示,我的情况当前是最大连接数限制是 151,在此之前依然创建过十几个数据库;同时我又再次自行检查过,我这里不存在未关闭 session 的操作,所以原因是 max_connections 属性配置太小
修改最大连接数
修改 MySQL 客户端最大连接数可以通过两种方式:
一种是使用命令设置,另一种是直接修改 my.cnf 文件
命令设置
使用命令设置这种方式是临时修改,只能治标不能治本,在这个 MySQL 服务不重启的条件下是可用的,若 MySQL 重启会恢复到 MySQL 默认的连接数(或者恢复到 my.cnf 文件中配置的最大连接数)。
但由于我是在测试,无所谓,MySQL 重启后的连接数
setglobal max_connections=1500;
修改 my.cnf 文件
MySQL 重启后会优先使用 my.cnf 配置文件中的配置,用上面命令设置后,若重启 MySQL 服务,则还是会回到 my.cnf 文件中配置的最大连接数(或者默认值)。
# 修改my.cnf文件,在文件中加入如下属性
max_connections=1500
# 然后重启mysql服务
$ service mysqld restart
再次去创建数据库连接,就没问题了!
觉得有用的话点个赞
👍🏻
呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
版权归原作者 檀越剑指大厂 所有, 如有侵权,请联系我们删除。