您的位置:首頁技術文章
文章詳情頁

解決mysql報錯:Data source rejected establishment of connection, message from server:

瀏覽:110日期:2023-02-18 16:43:56
目錄
  • 報錯
  • 原因
  • 解決
    • 查看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報錯連接數不夠用內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

    標簽: MySQL
    相關文章:
    国产综合久久一区二区三区