??????歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內(nèi)容和知識,也可以暢所欲言、分享您的想法和見解。
- 推薦:kwan 的首頁,持續(xù)學(xué)習(xí),不斷總結(jié),共同進步,活到老學(xué)到老
- 導(dǎo)航
- 檀越劍指大廠系列:全面總結(jié) java 核心技術(shù)點,如集合,jvm,并發(fā)編程 redis,kafka,Spring,微服務(wù),Netty 等
- 常用開發(fā)工具系列:羅列常用的開發(fā)工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
- 數(shù)據(jù)庫系列:詳細(xì)總結(jié)了常用數(shù)據(jù)庫 mysql 技術(shù)點,以及工作中遇到的 mysql 問題等
- 懶人運維系列:總結(jié)好用的命令,解放雙手不香嗎?能用一個命令完成絕不用兩個操作
- 數(shù)據(jù)結(jié)構(gòu)與算法系列:總結(jié)數(shù)據(jù)結(jié)構(gòu)和算法,不同類型針對性訓(xùn)練,提升編程思維,劍指大廠
非常期待和您一起在這個小小的網(wǎng)絡(luò)世界里共同探索、學(xué)習(xí)和成長。?????? ?? 歡迎訂閱本專欄 ??
問題描述
解決 MySQL 報錯:
Data source rejected establishment of connection, message from server: "Too many connectio_MySQL
在做項目時,創(chuàng)建多個數(shù)據(jù)庫進行連接,這個報錯也很容易理解,MySQL 連接數(shù)不夠用了
這個錯誤消息涉及到數(shù)據(jù)庫連接方面的問題,具體來說是關(guān)于連接數(shù)的限制。
-
SQLState:“08004”:這是一個標(biāo)準(zhǔn)的 SQL 狀態(tài)碼,通常表示連接錯誤或數(shù)據(jù)庫不可用。
-
vendorCode:1040:這是特定于數(shù)據(jù)庫供應(yīng)商的錯誤代碼,這里是 MySQL 數(shù)據(jù)庫的錯誤代碼。在 MySQL 中,錯誤代碼 1040 表示連接數(shù)過多的問題。
-
detailMessage:這是詳細(xì)的錯誤信息,指出了具體的問題。在這種情況下,服務(wù)器返回的消息是:“Data source rejected establishment of connection, message from server: “Too many connections””,翻譯過來就是"數(shù)據(jù)源拒絕建立連接,服務(wù)器消息:連接太多"。
這個錯誤發(fā)生在嘗試建立數(shù)據(jù)庫連接時,但由于連接數(shù)已經(jīng)達到了數(shù)據(jù)庫服務(wù)器的限制,所以連接被拒絕。這可能是因為數(shù)據(jù)庫服務(wù)器同時處理了太多的連接請求,或者系統(tǒng)配置設(shè)置了連接數(shù)的上限。解決方法通常包括增加數(shù)據(jù)庫服務(wù)器的最大連接數(shù)配置,優(yōu)化數(shù)據(jù)庫連接的使用,或者調(diào)整應(yīng)用程序的連接管理策略。
報錯信息
報錯信息如下:
“SQLState”:“08004”,“vendorCode”:1040,“detailMessage”:
“Data source rejected establishment of connection,message from server: “Too many connections””
錯誤原因
根本原因是 MySQL 連接數(shù)不夠用了
但也要分情況看為什么不夠用了
1. 是 MySQL 的 max_connections 屬性配置太???
2. 還是是多次 insert,update 操作沒有關(guān)閉 session?
解決方案
我們要知道,MySQL 版本的不同,可設(shè)置的最大連接數(shù)范圍也是有所區(qū)別的:
- MySQL5.5 ~ 5.7:默認(rèn)的最大連接數(shù)都是 151,上限為:100000
- MySQL5.0 版本:默認(rèn)的最大連接數(shù)為 100,上限為 16384
- MySQL8.0 版本: 默認(rèn)的最大連接數(shù)是 151
查看 MySQL 版本
SELECT VERSION() ;
如下,我這里是基于 MySQL 8.0.35,那么默認(rèn)的最大連接數(shù)應(yīng)該是 151
查看當(dāng)前 MySQL 最大連接數(shù)限制
show variables like 'max_connections';
當(dāng)前最大連接數(shù)限制是 151,顯示 1500,是因為我修改過了
確定連接數(shù)不夠原因
如上所示,我的情況當(dāng)前是最大連接數(shù)限制是 151,在此之前依然創(chuàng)建過十幾個數(shù)據(jù)庫;同時我又再次自行檢查過,我這里不存在未關(guān)閉 session 的操作,所以原因是 max_connections 屬性配置太小
修改最大連接數(shù)
修改 MySQL 客戶端最大連接數(shù)可以通過兩種方式:
一種是使用命令設(shè)置,另一種是直接修改 my.cnf 文件
命令設(shè)置
使用命令設(shè)置這種方式是臨時修改,只能治標(biāo)不能治本,在這個 MySQL 服務(wù)不重啟的條件下是可用的,若 MySQL 重啟會恢復(fù)到 MySQL 默認(rèn)的連接數(shù)(或者恢復(fù)到 my.cnf 文件中配置的最大連接數(shù))。
但由于我是在測試,無所謂,MySQL 重啟后的連接數(shù)
set global max_connections=1500;
修改 my.cnf 文件
MySQL 重啟后會優(yōu)先使用 my.cnf 配置文件中的配置,用上面命令設(shè)置后,若重啟 MySQL 服務(wù),則還是會回到 my.cnf 文件中配置的最大連接數(shù)(或者默認(rèn)值)。
# 修改my.cnf文件,在文件中加入如下屬性
max_connections=1500
# 然后重啟mysql服務(wù)
$ service mysqld restart
再次去創(chuàng)建數(shù)據(jù)庫連接,就沒問題了!
覺得有用的話點個贊
????
唄。
??????本人水平有限,如有紕漏,歡迎各位大佬評論批評指正!????????????如果覺得這篇文對你有幫助的話,也請給個點贊、收藏下吧,非常感謝!?? ?? ??
??????Stay Hungry Stay Foolish 道阻且長,行則將至,讓我們一起加油吧!??????文章來源:http://www.zghlxwxcb.cn/news/detail-812437.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-812437.html
到了這里,關(guān)于【MySQL系列】Too many connections的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!