程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql連接過多和死掉以及拒絕服務的解決方法

mysql連接過多和死掉以及拒絕服務的解決方法

編輯:關於MYSQL數據庫
mysql連接過多導致總是死掉,後來網上搜索發現此文自Mysql 5.x的某個版本之後,Mysql的自動關閉空閒連接的特性修改了,如果一個連接空閒到超時時間(默認28000秒8小時),再次發起的Reconnect重新連接請求不會被接受,需要重新建立新連接,這就導致了SER的重連機制不能正常工作:SER只會在需要操作數據庫時去使用同一個連接接口,斷開了則發起重新連接請求,而且這個問題短期內SER也不能夠解決:)處理方法:1.使用Mysql 4.0或4.1版本,如果沒有用到Mysql 5的一些新特性比如存儲過程觸發器之類。2.定時重啟Mysql服務器或Ser(由於本問題可能同樣會影響到其它一些需要Mysql支持的服務器程序,所以重啟Mysql服務器為好,但需要檢測Mysql服務器不被使用的一個時間重啟比較難確定)3.設置my.cnf,有mysqld字段內增加參數:[mysqld]port = 3306socket = /tmp/mysql.sockwait_timeout= 500000interactive_timeout = 500000(500000秒約五六天的超時時間,可根據實際需要選擇一個數據庫可能空閒的最長時間稍大的時間值。)重啟Mysqld應用即可,也可以在執行mysqld時加-o wait_timeout=500000參數同樣效果。在mysql客戶端show variable時應該可以看到最後一條從默認的wait_time=28000變成500000了。(可能需要重啟機子如果重啟Mysqld一直不生效的話:)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved