mysql資料庫連線過多的錯誤,可能的原因分析及解決辦法(轉)
mysql資料庫連線過多的錯誤,可能的原因分析及解決辦法(轉)[@more@]系統不能連線資料庫,關鍵要看兩個資料:
1、資料庫系統允許的最大可連線數max_connections。這個引數是可以設定的。如果不設定,預設是100。最大是16384。
2、資料庫當前的連線執行緒數threads_connected。這是動態變化的。
檢視max_connections、max_connections的辦法見後。
如果 threads_connected == max_connections 時,資料庫系統就不能提供更多的連線數了,這時,如果程式還想新建連線執行緒,資料庫系統就會拒絕,如果程式沒做太多的錯誤處理,就會出現類似強壇的報錯資訊。
因為建立和銷燬資料庫的連線,都會消耗系統的資源。而且為了避免在同一時間同時開啟過多的連線執行緒,現在程式設計一般都使用所謂資料庫連線池技術。
但資料庫連線池技術,並不能避免程式錯誤導致連線資源消耗殆盡。
這種情況通常發生在程式未能及時釋放資料庫連線資源或其他原因造成資料庫連線資源不能釋放,但強壇系統估計不會發生這種低階的程式設計錯誤。
該錯誤的簡便的檢查辦法是,在重新整理強壇頁面時,不斷監視threads_connected的變化。如果max_connections足夠大,而 threads_connected值不斷增加以至達到max_connections,那麼,就應該檢查程式了。當然,如果採用資料庫連線池技術, threads_connected增長到資料庫連線池的最大連線執行緒數時,就不再增長了。
從強壇出錯的情況看,更大的可能性是資料庫系統沒能進行適當地配置。下面提出一點建議。供參考
讓你們的工程師把MySQL的最大允許連線數從預設的100調成32000。這就不會老出現連線過多的問題了。
檢視max_connections
進入MySQL,用命令:show variables
檢視資料庫最大可連線數的變數值:max_connections
檢視threads_connected
進入MySQL,用命令:show status
檢視當前活動的連線執行緒變數值:threads_connected
設定max_connections
設定辦法是在my.cnf檔案中,新增下面的最後紅色的一行:
--------------------------------------------------------------------------------
[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=32000
--------------------------------------------------------------------------------
修改完畢後,重啟MySQL即可。當然,為了確保設定正確,應該檢視一下max_connections。
注意:
1、雖然這裡寫的32000。但實際MySQL伺服器允許的最大連線數16384;
2、除max_connections外,上述其他配置應該根據你們系統自身需要進行配置,不必拘泥;
3、新增了最大允許連線數,對系統消耗增加不大。
4、如果你的mysql用的是my.ini作配置檔案,設定類似,但設定的格式要稍作變通。
1、資料庫系統允許的最大可連線數max_connections。這個引數是可以設定的。如果不設定,預設是100。最大是16384。
2、資料庫當前的連線執行緒數threads_connected。這是動態變化的。
檢視max_connections、max_connections的辦法見後。
如果 threads_connected == max_connections 時,資料庫系統就不能提供更多的連線數了,這時,如果程式還想新建連線執行緒,資料庫系統就會拒絕,如果程式沒做太多的錯誤處理,就會出現類似強壇的報錯資訊。
因為建立和銷燬資料庫的連線,都會消耗系統的資源。而且為了避免在同一時間同時開啟過多的連線執行緒,現在程式設計一般都使用所謂資料庫連線池技術。
但資料庫連線池技術,並不能避免程式錯誤導致連線資源消耗殆盡。
這種情況通常發生在程式未能及時釋放資料庫連線資源或其他原因造成資料庫連線資源不能釋放,但強壇系統估計不會發生這種低階的程式設計錯誤。
該錯誤的簡便的檢查辦法是,在重新整理強壇頁面時,不斷監視threads_connected的變化。如果max_connections足夠大,而 threads_connected值不斷增加以至達到max_connections,那麼,就應該檢查程式了。當然,如果採用資料庫連線池技術, threads_connected增長到資料庫連線池的最大連線執行緒數時,就不再增長了。
從強壇出錯的情況看,更大的可能性是資料庫系統沒能進行適當地配置。下面提出一點建議。供參考
讓你們的工程師把MySQL的最大允許連線數從預設的100調成32000。這就不會老出現連線過多的問題了。
檢視max_connections
進入MySQL,用命令:show variables
檢視資料庫最大可連線數的變數值:max_connections
檢視threads_connected
進入MySQL,用命令:show status
檢視當前活動的連線執行緒變數值:threads_connected
設定max_connections
設定辦法是在my.cnf檔案中,新增下面的最後紅色的一行:
--------------------------------------------------------------------------------
[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=32000
--------------------------------------------------------------------------------
修改完畢後,重啟MySQL即可。當然,為了確保設定正確,應該檢視一下max_connections。
注意:
1、雖然這裡寫的32000。但實際MySQL伺服器允許的最大連線數16384;
2、除max_connections外,上述其他配置應該根據你們系統自身需要進行配置,不必拘泥;
3、新增了最大允許連線數,對系統消耗增加不大。
4、如果你的mysql用的是my.ini作配置檔案,設定類似,但設定的格式要稍作變通。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961855/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫連線錯誤的原因及解決方法資料庫
- Mysql出現連線錯誤解決辦法MySql
- ORA-39006錯誤原因及解決辦法
- MYSQL++ 資料庫連線超時的解決辦法LTMySql資料庫
- 資料庫連線失敗的原因及解決方法資料庫
- docker 容器環境下的 MySQL 拒絕連線錯誤解決辦法DockerMySql
- 在IDEA中使用JDBC獲取資料庫連線時的報錯及解決辦法IdeaJDBC資料庫
- 錯誤720寬頻連線解決辦法 寬頻連線錯誤程式碼720怎麼解決
- iOS路上遇到的錯誤及解決辦法iOS
- 遠端連線MySQL錯誤“plugin caching_sha2_password could not be loaded”的解決辦法MySqlPlugin
- 解決navicat遠端連線資料庫報2059錯誤的方法資料庫
- PbootCMS資料庫配置,修改為Mysql資料庫,配置Mysql出錯解決辦法boot資料庫MySql
- 【知識分享】伺服器連線失敗的原因及解決辦法伺服器
- MySQL 資料庫崩潰(crash)的常見原因和解決辦法MySql資料庫
- 網站提示連線資料庫錯誤怎麼解決網站資料庫
- qt使用mysql,開啟資料庫,丟擲無法連線錯誤。QTMySql資料庫
- 網站資料庫連線錯誤怎麼辦?網站資料庫
- (資料庫十)資料庫中的鎖機制以及死鎖產生的原因及解決辦法資料庫
- 服裝倉庫混亂的原因及解決辦法
- Wordpress獨立站資料庫連線錯誤的三種解決方式資料庫
- 寬頻連線720錯誤是什麼意思?Win10寬頻連線720錯誤的解決辦法Win10
- 阿里雲資料庫連線資料庫錯誤:如何解決?阿里資料庫
- sql server資料庫附加錯誤的解決過程SQLServer資料庫
- Dedecms錯誤警告:連線資料庫失敗,可能資料庫密碼不對或資料庫伺服器出錯怎麼解決?資料庫密碼伺服器
- 解決Mysql資料庫插入資料出現問號(?)的解決辦法MySql資料庫
- Dedecms錯誤警告:連線資料庫失敗,出錯怎麼解決?資料庫
- 網站出現資料庫連線錯誤怎麼辦?網站資料庫
- 網站資料庫連線時錯誤怎麼辦?網站資料庫
- 達夢資料庫關於[-70028]:建立SOCKET連線失敗的錯誤原因資料庫
- Oracle的TNS-12502 錯誤原因及解決Oracle
- 本地無法連線Mysql的原因MySql
- 開啟網站資料庫連線錯誤怎麼辦?網站資料庫
- navicat連線MySQL8.0.11報2059錯誤的解決方案MySql
- 微信域名被封的原因及解決辦法
- warning: LF will be replaced by CRLF in ** 的原因及解決辦法
- Android studio 連線sqlist資料庫,賬號密碼錯誤仍能登入的原因AndroidSQL資料庫密碼
- 【mysql】關於連線mysql資料庫時出現的時區錯誤time zoneMySql資料庫
- 伺服器出現500錯誤的原因和解決辦法伺服器
- 解決無法連線SQL Server資料庫的方法BWSQLServer資料庫