MySQL為什么莫名其妙的斷開連接以及解決方案


解決方法
1.autoReconnect
這個參數表示在mysql超時斷開連接后會自動重新連接

配置的話,只需要在連接mysql的語句寫上autoReconnect=true


下面是MySQL官網對autoReconnect的解釋:

同時可以看到官網不推薦使用這個參數,因為它有一些副作用

具體介紹下:

原有連接上的事務將會被回滾,事務的提交模式將會丟失
原有連接持有的表的鎖將會全部釋放
原有連接關聯的會話Session將會丟失,重新恢復的連接關聯的將會是一個新的會話Session
原有連接定義的用戶變量將會丟失
原有連接定義的預編譯SQL將會丟失
原有連接失效,新的連接恢復后,MySQL將會使用新的記錄行來存儲連接中的性能數據

wait_timeout指的是mysql在關閉一個非交互的連接之前所要等待的秒數

interactive_time 指的是mysql在關閉一個交互的連接之前所要等待的秒數

對於交互和非交互連接,說得直白一點就是,通過mysql客戶端連接數據庫是交互式連接,通過jdbc連接數據庫是非交互式連接。

配置方法:

1.會話方式

msyql> set global wait_timeout=2880000;
msyql> set global interactive_timeout=2880000;
1
2
這種方式只對當前會話生效

2.修改配置文件方式

修改/etc/my.cnf文件,在 [mysqld] 節中設置:

wait_timeout=2880000

wait_timeout=2880000;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM