解決MySQL數(shù)據(jù)庫死掉以及拒絕服務的方法
導讀:MySQL數(shù)據(jù)庫由于其良好的使用性能,贏得了廣大用戶的喜愛,很多大型企業(yè)都在用MySQL數(shù)據(jù)庫,盡管如此,MySQL數(shù)據(jù)庫有時仍然會遇到比如死掉的問題,以及拒絕服務的問題。從Mysql 5.x的某個版本之后,MySQL的自動關(guān)閉空閑連接的特性被修改了,假如一個連接空閑到超時時間(默認28000秒8小時),再次發(fā)起的Reconnect重新連接請求不會被接受,需要重新建立新連接,這就導致了SER的重連機制不能正常工作:SER只會在需要操作數(shù)據(jù)庫時去使用同一個連接接口,斷開了則發(fā)起重新連接請求,而且這個問題短期內(nèi)SER也不能夠解決。
下文中將具體講述處理的方法:
1.使用Mysql 4.0或4.1版本,如果沒有用到Mysql 5的一些新特性比如存儲過程觸發(fā)器之類。
2.定時重啟Mysql服務器或Ser(由于本問題可能同樣會影響到其它一些需要Mysql支持的服務器程序,所以重啟Mysql服務器為好,但需要檢測Mysql服務器不被使用的一個時間重啟比較難確定)
3.設置my.cnf,有mysqld字段內(nèi)增加參數(shù):
[mysqld]port = 3306socket = /tmp/mysql.sockwait_timeout= 500000interactive_timeout = 500000(500000秒約五六天的超時時間,可根據(jù)實際需要選擇一個數(shù)據(jù)庫可能空閑的最長時間稍大的時間值。)重啟Mysqld應用即可,也可以在執(zhí)行mysqld時加-o wait_timeout=500000參數(shù)同樣效果。
在MySQL客戶端show variable時應該可以看到***一條從默認的wait_time=28000變成500000了。
(假如重啟Mysqld不生效,可以重啟機子)
這就是我要為大家介紹的解決MySQL數(shù)據(jù)庫死掉以及拒絕服務的方法的全部內(nèi)容,希望對大家有所幫助。
【編輯推薦】