| 導購 | 订阅 | 在线投稿
分享
 
 
 

解決MySQL數據庫死掉以及拒絕服務的方法

來源:互聯網  2008-06-01 03:14:06  評論

從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不生效,可以重啓機子)

從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不生效,可以重啓機子)
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有