Communications link failure
針對數據庫Communications link failure的錯誤,可以理解為有兩種策略解決:
策略1(推薦):
?? ?數據池配置 <property name="minEvictableIdleTimeMillis" value="28800" />屬性,和數據庫變量wait_timeout一致。
策略2:?? ?
?? ?數據池配置
?? ?<!-- testWhileIdle會定時校驗numTestsPerEvictionRun個連接,只要發現連接失效,就將其移除再重新創建-->
?? ???? <property name= "testWhileIdle" value="true" />
?? ???? <!-- 從池中取連接的時候,發現當前連接失效,再創建一個連接供當前查詢使用-->
?? ???? <property name= "testOnBorrow" value="false" />
?? ???? <!-- 連接在return給pool時,是否提前進行validate操作-->
?? ???? <property name= "testOnReturn" value="false" />
?? ???? <!-- 測試連接是否有效的sql-->
?? ???? <property name= "validationQuery" value="select 1" /> ?
?? ???? <!-- 檢查連接池中空閑的連接的頻率:毫秒-->
?? ???? <property name= "timeBetweenEvictionRunsMillis" value="30000" /> ?
?? ???? <!-- 每次檢查空閑連接的個數-->
?? ???? <property name= "numTestsPerEvictionRun" value="30" />??? ?
?? ?? 一套屬性,定期檢查連接,發現無效的則關閉。
策略3:
修改MySQL的參數,wait_timeout最大為31536000即1年,在my.cnf中加入:
[mysqld]
wait_timeout=31536000(1年)259200(3天:個人推薦)
interactive_timeout=31536000
重啟生效,需要同時修改這兩個參數。
!!!需要重啟
轉載于:https://www.cnblogs.com/zhaojinxin/p/7660285.html
總結
以上是生活随笔為你收集整理的Communications link failure的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下查看目录下某种文件类型累计的
- 下一篇: ElasticStack系列之十六 E