今天在向mysql插入數據庫時報錯mysql
MySQL server has gone away insert into ***_enewsdolog(******)括號內是一些字段sql
數據能夠正常插入就是會出現這個報錯,查找了一下緣由,最後發現是my.cnf的設置有問題數據庫
默認的 wait_time=10server
將其註釋或將數值擴大能夠解決問題圖片
如wait_time= 28000it
在網上查了一些資料,還有一些緣由可能致使這個問題:變量
一種多是發送的SQL語句太長,以至超過了max_allowed_packet的大小,若是是這種緣由,你只要修改my.cnf,加大max_allowed_packet的值便可。程序
還有一種多是由於某些緣由致使超時,好比說程序中獲取數據庫鏈接時採用了Singleton的作法,雖然屢次鏈接數據庫,但其實使用的都是同一個鏈接,並且程序中某兩次操做數據庫的間隔時間超過了wait_timeout(SHOW STATUS能看到此設置),那麼就可能出現問題。最簡單的處理方式就是把wait_timeout改大,固然你也能夠在程序裏時不時順手mysql_ping()一下,這樣MySQL就知道它不是一我的在戰鬥。方法
解決方法:im
執行一個SQL,但SQL語句過大或者語句中含有BLOB或者longblob字段。好比,圖片數據的處理 解決方案: 在my.cnf文件中添加或者修改如下變量: max_allowed_packet = 10M(也能夠設置本身須要的大小) max_allowed_packet 參數的做用是,用來控制其通訊緩衝區的最大長度。