欢迎投稿

今日深度:

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

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


目录
  • 报错
  • 原因
  • 解决
    • 查看mysql版本
    • 查看当前mysql最大连接数限制
    • 确定连接数不够原因
    • 修改最大连接数
      • 命令设置
      • 修改my.cnf文件
  • 总结

    最近在做压力测试嘛,需要逐步增加用户量做验证,每个用户单独创建数据库进行连接,就要不断去创建数据库,这个报错也很容易理解,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报错连接数不够用内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

    www.htsjk.Com true http://www.htsjk.com/Mysql/45613.html NewsArticle 解决mysql报错:Data source rejected establishment of connection, message from server: \Too many connectio, 目录 报错 原因 解决 查看mysql版本 查看当前mysql最大连接数限制 确定连接数不够原因 修改...
    评论暂时关闭