解决mysql报错:Data source rejected establishment of connection, message from server: \"Too many connectio

 更新时间:2023年02月17日 09:32:19   作者:鲲志说  
这篇文章主要给大家介绍了关于如何解决mysql报错:Data source rejected establishment of connection, message from server: \"Too many connectio的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

最近在做压力测试嘛,需要逐步增加用户量做验证,每个用户单独创建数据库进行连接,就要不断去创建数据库,这个报错也很容易理解,mysql连接数不够用了

报错

报错信息如下:

"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

查看mysql版本

select version();

如下,我这里是基于mysql 5.7,那么默认的最大连接数应该是151

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

show variables like 'max_connections';

当前最大连接数限制是151,说明没有改过最大连接数限制

确定连接数不够原因

如上所示,我的情况当前是最大连接数限制是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

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

总结

到此这篇关于解决mysql报错:Data source rejected establishment of connection, message from server: \"Too many connectio的文章就介绍到这了,更多相关mysql报错连接数不够用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL使用触发器实现数据自动更新的应用实例

    MySQL使用触发器实现数据自动更新的应用实例

    触发器是非常常见的自动化数据库操作方式,无论是在数据更新、删除还是需要自动添加一些内容到数据表上,触发器都可以发挥作用,熟悉 SQL 的基本语法和一些常见的用例,可以帮助你合理地设置自己的数据库操作流程,
    2024-01-01
  • MySQL索引优化之回表

    MySQL索引优化之回表

    回表是一个与索引查询相关的重要概念,当查询语句通过非聚簇索引找到匹配的主键值后,需要根据主键值再次查询聚簇索引,以获取其他字段的数据,这个过程称为mysql复合主键回表
    2025-06-06
  • Mysql中的join操作

    Mysql中的join操作

    这篇文章主要介绍了Mysql join操作的相关资料,需要的朋友可以参考下
    2017-05-05
  • 解决bash: mysql: command not found 的方法

    解决bash: mysql: command not found 的方法

    解决bash: mysql: command not found 的方法,需要的朋友可以参考一下
    2013-03-03
  • mysql8.0主从复制搭建与配置方案

    mysql8.0主从复制搭建与配置方案

    MySQL主从复制是一个异步的复制过程,就是有两个数据库服务器,一个是主(master)数据库服务器,另一个是从(slave)数据库服务器。
    2022-09-09
  • MySQL MHA 运行状态监控介绍

    MySQL MHA 运行状态监控介绍

    这篇文章主要介绍MySQL MHA 运行状态监控,MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover 功能,想具体了解的小伙伴可以和小编一起学习下面文章内容
    2021-10-10
  • MySQL内存及虚拟内存优化设置参数

    MySQL内存及虚拟内存优化设置参数

    这篇文章主要介绍了MySQL内存及虚拟内存优化设置参数,需要的朋友可以参考下
    2016-05-05
  • 用C语言操作MySQL数据库的通用方法

    用C语言操作MySQL数据库的通用方法

    在为MySQL提供接口方面,C语言具有更好的安全性和性能,本篇文章介绍了C语言操作MySQL数据库的通用方法,需要了解的朋友可以参考下
    2015-07-07
  • MySQL将版本由5.7.37更新到5.7.39的实现方式

    MySQL将版本由5.7.37更新到5.7.39的实现方式

    这篇文章主要介绍了MySQL将版本由5.7.37更新到5.7.39的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • MySQL中LAG()函数和LEAD()函数的使用

    MySQL中LAG()函数和LEAD()函数的使用

    这篇文章主要介绍了MySQL中LAG()函数和LEAD()函数的使用,包括窗口函数的基本用法,LAG()和LEAD()函数介绍,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08

最新评论