最近遇到過頭疼的問題,項目在本地運行是沒問題的,但是項目部署到服務器經常運行一段時間,mysql就鏈接不上,重啟后就好了 一段時間又不行,最后發現是mysql 數據默認設置了8小時不鏈接,就自動斷開了。修改下mysql的默認設置就OK了,希望對大家有用所以分享出來。
1、輸入下一命令:
show variables like '%timeout%';
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| wait_timeout | 28800 |
+-----------------------------+----------+
找到interactive_timeout、wait_timeout參數,可以看到mysql 默認設置了這兩個參數是28800(8小時),我們
只要把這兩個參數的值修改大一些就好了。
2、解決辦法
set interactive_timeout= 31536000; // 一年
set wait_timeout=31536000;// 一年