【MySQL系列】Too many connections

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐: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 连接数不够用了

这个错误消息涉及到数据库连接方面的问题,具体来说是关于连接数的限制。

  1. SQLState:“08004”:这是一个标准的 SQL 状态码,通常表示连接错误或数据库不可用。

  2. vendorCode:1040:这是特定于数据库供应商的错误代码,这里是 MySQL 数据库的错误代码。在 MySQL 中,错误代码 1040 表示连接数过多的问题。

  3. 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

image-20240109100219341

查看当前 MySQL 最大连接数限制

show variables like 'max_connections';

image-20240109100248972

当前最大连接数限制是 151,显示 1500,是因为我修改过了

确定连接数不够原因

如上所示,我的情况当前是最大连接数限制是 151,在此之前依然创建过十几个数据库;同时我又再次自行检查过,我这里不存在未关闭 session 的操作,所以原因是 max_connections 属性配置太小

修改最大连接数

修改 MySQL 客户端最大连接数可以通过两种方式:

一种是使用命令设置,另一种是直接修改 my.cnf 文件

命令设置

使用命令设置这种方式是临时修改,只能治标不能治本,在这个 MySQL 服务不重启的条件下是可用的,若 MySQL 重启会恢复到 MySQL 默认的连接数(或者恢复到 my.cnf 文件中配置的最大连接数)。

但由于我是在测试,无所谓,MySQL 重启后的连接数

set global max_connections=1500;

修改 my.cnf 文件

MySQL 重启后会优先使用 my.cnf 配置文件中的配置,用上面命令设置后,若重启 MySQL 服务,则还是会回到 my.cnf 文件中配置的最大连接数(或者默认值)。

# 修改my.cnf文件,在文件中加入如下属性
max_connections=1500

# 然后重启mysql服务
$ service mysqld restart

再次去创建数据库连接,就没问题了!

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

相关推荐

  1. MySQL 系列MySQL 函数篇

    2024-01-10 12:08:01       23 阅读
  2. MySQL 系列MySQL 引擎篇

    2024-01-10 12:08:01       20 阅读
  3. MySQL面试系列-01

    2024-01-10 12:08:01       32 阅读
  4. MySQL面试系列-02

    2024-01-10 12:08:01       30 阅读
  5. MySQL面试系列-03

    2024-01-10 12:08:01       24 阅读
  6. MySQL系列-索引

    2024-01-10 12:08:01       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 12:08:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 12:08:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 12:08:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 12:08:01       20 阅读

热门阅读

  1. Elasticsearch ES实现GEO位置搜索

    2024-01-10 12:08:01       41 阅读
  2. 前端面试 -- vue系列(1)

    2024-01-10 12:08:01       30 阅读
  3. SpringMVC--处理json

    2024-01-10 12:08:01       31 阅读
  4. springboot配置文件(三)加载外部配置文件

    2024-01-10 12:08:01       38 阅读
  5. 【docker】Docker Compose 使用介绍

    2024-01-10 12:08:01       44 阅读
  6. Linux C语言 53-IO复用之epoll

    2024-01-10 12:08:01       30 阅读
  7. vue element plus 快速开始

    2024-01-10 12:08:01       39 阅读