mysql宕機主要有兩個原因:
1.內存被其它進程大量占用,或數據庫本身數據量太大導致mysql宕機
2.程序訪問mysql後沒有執行mysql.close,大量占用資源導致宕機。
群裡提出的這個問題主要是mysql5.5以上的,基本上不是mysql宕機。因為5.5以上的數據庫會有個鏈接超時配置。
默認是28800秒也就是8個小時,會斷開連接。
解決方案:
1.修改mysql配置。
如果是linux服務器編輯mysql.cnf 執行vi /etc/mysql.cnf
找到[mysqld] 在底下添加
interactive_timeout=28800000
wait_timeout=28800000
多加了三個0 也就是8000個小時。基本就不用考慮連接超時
修改完配置後,記得重啟mysql服務。
2.程序方面。
以java程序為例(抱歉只會java)
打開Spring配置文件,修改applicationContext.xml
在datasource bean底下添加
用來指定測試連接所使用的SQL語句。
如果測試發現連接已經close,那麼將自動重建連接。
<property name="houseKeepingTestSql">
<value>SELECT 1</value>
</property>
用來指定在使用連接之前要進行測試。
<property name="testBeforeUse">
<value>true</value>
</property>