① 明明設置了資料庫連接池maxidle,為什麼資料庫連接數會超過它
兄弟,資料庫連接池是一種客戶端行為,而不是資料庫服務端行為。一個資料庫可能會對應很多資料庫連接池,你設置你的資料庫連接池只是限制你的應用連接數量而已,還會有其他的資料庫連接池去連接資料庫。
② 如何增加mysql資料庫並發數
方法一:進入MYSQL安裝目錄 打開MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改為 max_connections=1000 服務里重起MYSQL即可
方法二:MySQL的最大連接數默認是100客戶端登錄:mysql -uusername -ppassword
設置新的最大連接數為200:mysql> set GLOBAL max_connections=200
顯示當前運行的Query:mysql> show processlist
顯示當前狀態:mysql> show status
退出客戶端:mysql> exit
查看當前最大連接數:mysqladmin -uusername -ppassword variables
③ 如何增大MYSQL資料庫連接數
如果mysql 連接數據設置不合理可能會導致很小的流量mysql就提示MySQL: ERROR 1040: Too many connections錯誤了,那麼要如何才算是合理設置mysql最大連接數呢,下面我來給大家介紹介紹。
MySQL伺服器的連接數並不是要達到最大的100%為好,還是要具體問題具體分析,下面就對MySQL伺服器最大連接數的合理設置進行了詳盡的分析,供您參考。
我們經常會遇見「MySQL: ERROR 1040: Too many connections」的情況,通常,mysql的最大連接數默認是100, 最大可以達到16384。
一種是訪問量確實很高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力,另外一種情況是MySQL配置文件中max_connections值過小:
mysql> show variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 256 |
+-----------------+-------+
這台MySQL伺服器最大連接數是256,然後查詢一下伺服器響應的最大連接數:
mysql> show global status like 'Max_used_connections';
MySQL伺服器過去的最大連接數是245,沒有達到伺服器連接數上限256,應該沒有出現1040錯誤,比較理想的設置是:
Max_used_connections / max_connections * 100% ≈ 85%
最大連接數占上限連接數的85%左右,如果發現比例在10%以下,MySQL伺服器連接上線就設置得過高了
在Windows下常用的有兩種方式修改最大連接數。
第一種:命令行修改。
>mysql -uuser -ppassword(命令行登錄MySQL)
mysql>show variables like 'max_connections';(查可以看當前的最大連接數)
msyql>set global max_connections=1000;(設置最大連接數為1000,可以再次查看是否設置成功)
mysql>exit(推出)
這種方式有個問題,就是設置的最大連接數只在mysql當前服務進程有效,一旦mysql重啟,又會恢復到初始狀態。因為mysql啟動後的初始化工作是從其配置文件中讀取數據的,而這種方式沒有對其配置文件做更改。
第二種:修改配置文件。
這 種方式說來很簡單,只要修改MySQL配置文件my.ini 或 my.cnf的參數max_connections,將其改為max_connections=1000,然後重啟MySQL即可。但是有一點最難的就是my.ini這個文件在哪找。通常有兩種可能,一個是在安裝目錄下(這是比較理想的情況),另一種是在數據文件的目錄下,安裝的時候如果沒有人為改變目錄的話,一般就在C:/ProgramData/MySQL往下的目錄下。
與連接數相關的幾個參數:
在修改最大連接數的時候會有這樣一個疑問—這個值是不是越大越好,或者設置為多大才合適?這個參數的大小要綜合很多因素來考慮,比如使用的平台所支持的線程庫數量(windows只能支持到2048)、伺服器的配置(特別是內存大小)、每個連接佔用資源(內存和負載)的多少、系統需要的響應時間等。可以在global或session范圍內修改這個參數。連接數的增加會帶來很多連鎖反應,需要在實際中避免由此引發的負面影響。