mysql如何實現(xiàn)最大連接數(shù)
數(shù)據(jù)庫連接數(shù)突然增大是什么原因?
可能是數(shù)據(jù)庫性能突然變慢,連接的客戶要很久才能得到響應,客戶以為是自己沒確認到,于是客戶就不斷地連接,這樣會話就增加了,數(shù)據(jù)庫就更忙了,最后可能會掛了。
一、前言
? ? ?項目中可能會遇到MySQL: ERROR 1040: Too many connections”的異常情況;Why:造成這種情況的一種原因是訪問量過高,MySQL服務器抗不住,這個時候就要考慮增加從服務器分散讀壓力;另一種原因就是MySQL配置文件中max_connections值過小。
二、知識點
? ? ?Mysql的max_connections參數(shù)用來設置最大連接(用戶)數(shù)。每個連接MYSQL的用戶均算作一個連接,max_connections的默認值不同版本略有區(qū)別。
Mysql5.5?mysql5.6 ?mysql5.7:默認的最大連接數(shù)都是151,上限為:100000

Mysql5.1根據(jù)其小版本的不同,默認的最大連接數(shù)和可修改的連接數(shù)上限也有所不同

Mysql5.0版本:默認的最大連接數(shù)為100,上限為16384

? ? ?吐槽一下mysql版本的命名,從5.7一下跳到8.0版本。Mysql5.5?mysql5.6 ?mysql5.7:默認的最大連接數(shù)都是151。這個數(shù)值對于并發(fā)連接很多的數(shù)據(jù)庫應用是遠不夠用的。當連接請求大于默認連接數(shù)后,就會出現(xiàn)無法連接數(shù)據(jù)庫的錯誤,因此我們需要把它適當調(diào)大一些。在使用 MySQL 數(shù)據(jù)庫的時候,經(jīng)常會遇到一個問題,就是”Can not connect to MySQL server. Too many connections” -mysql 1040 錯誤,這是因為訪問MySQL且還未釋放的連接數(shù)已經(jīng)達到 MySQL 的上限。MySQL無論如何都會保留一個用于管理員(SUPER)登陸的連接,用于管理員連接數(shù)據(jù)庫進行維護操作,即使當前連接數(shù)已經(jīng)達到了max_connections。因此MySQL的實際最大可連接數(shù)為max_connections+1;增加max_connections參數(shù)的值,不會占用太多系統(tǒng)資源。系統(tǒng)資源(CPU、內(nèi)存)的占用主要取決于查詢的密度、效率等;該參數(shù)設置過小的最明顯特征是出現(xiàn)”Too many connections”錯誤;
三、實操
1、查看最大連接數(shù)
Mysql5.5?mysql5.6 ?mysql5.7:默認的最大連接數(shù)都是151,上限為:100000
mysql> show variables like "%max_connections%";
±----------------±------+
| Variable_name | Value|
±----------------±------+
| max_connections| 151 |
±----------------±------+
1 row in set (0.00 sec)
2、查看服務器響應的最大連接數(shù)
mysql> show global status like 'Max_used_connections'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | Max_used_connections | 11 | +----------------------+-------+ 1 row in set (0.00 sec)
可以看到服務器響應的最大連接數(shù)為11,遠遠低于mysql服務器允許的最大連接數(shù)值。對于mysql服務器最大連接數(shù)值的設置范圍比較理想的是:服務器響應的最大連接數(shù)值占服務器上限連接數(shù)值的比例值在10%以上,如果在10%以下,說明mysql服務器最大連接上限值設置過高。
3、修改最大連接數(shù)
常用的修改最大連接數(shù)的兩種方式如下:
第一種:命令行修改最大連接數(shù)(max_connections),設置最大連接數(shù)為1000。
mysql> set global max_connections = 1000;
這種方式有個問題,就是設置的最大連接數(shù)只在 MySQL 當前服務進程有效,一旦MySQL重啟,又會恢復到初始狀態(tài)。因為MySQL啟動后的初始化工作是從其配置文件中讀取數(shù)據(jù)的,而這種方式?jīng)]有對其配置文件做更改。
第二種:通過修改配置文件來修改MySQL最大連接數(shù)(max_connections)。
進入MySQL安裝目錄,打開MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100,修改為max_connections=1000,重啟MySQL服務即可。
四、參考資料
1、https://www.yisu.com/zixun/38410.html
2、https://bbs.huaweicloud.com/blogs/147608
到此這篇關于mysql如何實現(xiàn)最大連接數(shù)的文章就介紹到這了,更多相關mysql 最大連接數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Mysql 5.5.56版本(二進制包安裝)自定義安裝路徑步驟記錄
這篇文章主要介紹了Mysql 5.5.56版本(二進制包安裝)自定義安裝路徑步驟記錄,需要的朋友可以參考下2017-07-07
MySQL數(shù)據(jù)庫?觸發(fā)器?trigger
這篇文章主要介紹了MySQL數(shù)據(jù)庫?觸發(fā)器?trigger,觸發(fā)器是一種特殊類型的存儲過程,觸發(fā)器通過事件進行觸發(fā)而被執(zhí)行,可通過數(shù)據(jù)庫中的相關表實現(xiàn)級聯(lián)更改,保證數(shù)據(jù)安全,進行安全校驗2022-06-06
mysql生成指定位數(shù)的隨機數(shù)及批量生成隨機數(shù)的方法
這篇文章主要介紹了mysql生成指定位數(shù)的隨機數(shù)及批量生成隨機數(shù)的方法,文中給大家介紹了常用mysql函數(shù),需要的朋友可以參考下2018-09-09
MySQL數(shù)據(jù)更新操作的兩種辦法(數(shù)據(jù)可視化工具和SQL語句)
MySQL是最常用的數(shù)據(jù)庫,在數(shù)據(jù)庫操作中,基本都是增刪改查操作,簡稱CRUD,下面這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)更新操作的兩種辦法,需要的朋友可以參考下2023-03-03

