Mysql檢視最大連線數和修改最大連線數的講解
MySQL檢視最大連線數和修改最大連線數
1、檢視最大連線數
show variables like '%max_connections%';
2、修改最大連線數
set GLOBAL max_connections = 200;
以下的文章主要是向大家介紹的是MySQL最大連線數的修改,我們大家都知道MySQL最大連線數的預設值是100,這個數值對於併發連線很多的資料庫的應用是遠不夠用的,當連線請求大於預設連線數後,就會出現無法連線資料庫的錯誤,因此我們需要把它適當調大一些。在使 用MySQL資料庫的時候,經常會遇到這麼一個問題,就是“Can not connect to MySQL server. Too many connections”-mysql 1040
mysql資料庫連線數過多導致系統出錯,系統不能連線資料庫,關鍵要看兩個資料:
1、資料庫系統允許的最大可連線數max_connections
。這個引數是可以設定的。如果不設定,預設是100。
2、資料庫當前的連線執行緒數threads_connected
。這是動態變化的。
檢視max_connections、max_connections的辦法下面我們再說。
如果 threads_connected == max_connections
時,資料庫系統就不能提供更多的連線數了,這時,如果程式還想新建連線執行緒,資料庫系統就會拒絕,如果程式沒做太多的錯誤處理。
因為建立和銷燬資料庫的連線,都會消耗系統的資源。而且為了避免在同一時間同時開啟過多的連線執行緒,現在程式設計一般都使用所謂資料庫連線池技術。
但資料庫連線池技術,並不能避免程式錯誤導致連線資源消耗殆盡。
這種情況通常發生在程式未能及時釋放資料庫連線資源或其他原因造成資料庫連線資源不能釋放,發生類似錯誤的簡便的檢查辦法是,在重新整理頁面時,不斷監視threads_connected的變化。如果max_connections足夠大,而 threads_connected值不斷增加以至達到max_connections,那麼,就應該檢查程式了。當然,如果採用資料庫連線池技術,threads_connected增長到資料庫連線池的最大連線執行緒數時,就不再增長了。
檢視 max_connections
show variables like "max_connections";
結果如下:
+-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | max_connections | 100 | +-----------------+-------+
檢視 threads_connected
show status like 'Thread_%';
結果如下:
+-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_cached | 0 | | Threads_connected | 1 | | Threads_created | 1 | | Threads_running | 1 | +-------------------+-------+
設定max_connections
設定辦法是在my.cnf
檔案中找到max_connections
一項修改即可,若沒有該項,請在[mysqld]下新增一行:
[mysqld] max_connections=1000
修改完畢後,重啟MySQL即可。當然,為了確保設定正確,應該檢視一下max_connections。
注意:
- 1、這裡寫的1000。請按實際要求修改;
- 2、添加了最大允許連線數,對系統消耗增加不大。
- 3、如果你的mysql用的是my.ini作配置檔案,設定類似,但設定的格式要稍作變通。
其他需注意的:
在程式設計時,由於用MySQL語句呼叫資料庫時,在每次之執行語句前,會做一個臨時的變數用來開啟資料庫,所以你在使用MySQL語句的時候,記得在每次呼叫完MySQL之後就關閉MySQL臨時變數。
另外對於訪問量大的,可以考慮直接寫到文字中,根據預測的訪問量,先定義假若是100個檔案檔名,需要的時候,再對所有文字檔案中的資料進行分析,再匯入資料庫。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。如果你想了解更多相關內容請檢視下面相關連結