mysql連接報“Communications link failure”錯誤
有可能是端口錯誤可以排查下這方便
先給大家簡述一下我的坑吧,(我用的是mysql,至于oracle有沒有這樣的問題,有心的小伙伴們可以測試一下哈),
在自己做個javaweb測試項目的時候,因為買的是云服務(wù)器,所以數(shù)據(jù)庫連接的是用ip地址,用IDE開發(fā)好后,于是部署到遠程云服務(wù)器上,這時候我是直接部署上去的,如圖所示,數(shù)據(jù)庫配置就是這樣的(圖中連接地址是假的,我改過了,這里僅僅演示)、
過了一段時間后,我通過controller路徑去訪問(剛啟動tomcat后,是可以訪問拿到數(shù)據(jù)的),過了一段時間后,就開始報Communications link failure 連接錯誤了
不過,他提示的到是還是蠻有“責(zé)任心”的,如果仔細看下面的話,它還給出了解決方案。
看到關(guān)鍵字后,第一時間當(dāng)然是網(wǎng)上看看,有沒有遇到類似情況的,于是發(fā)現(xiàn)有很多,看來這是應(yīng)該普遍大家會遇到的坑。然后呢,我就按照網(wǎng)上教程,開始了我的測試之
第一種方法:在jdbcURL上加上了 ?autoReconnect=true&failOverReadOnly=false
使用了之后呢,然后過了一段時間,還是報那個Communications link failure 錯誤,然后繼續(xù)探索,然后有帖子就說了,autoReconnect=true 適用的是mysql 4.x版本可以用,如果是5以上就不行,然后就馬上看了一下自己的mysql版本,通過select version();看到自己mysql的是5.5的,
于是就采用第二種方法:在mysql的my.ini里面加上這兩個參數(shù)

wait_timeout=2147483
interactive_timeout=2147483 ,
因為帖子里說是在默認配置不改變的情況下,如果連續(xù)8小時內(nèi)都沒有訪問數(shù)據(jù)庫的操作,再次訪問mysql數(shù)據(jù)庫的時候,mysql數(shù)據(jù)庫會拒絕訪問,于是那就加上吧
加了之后呢,又開始測,過了一段時間,還是報Communications link failure 錯誤,這下徹底涼了,于是繼續(xù)翻看著,
終于在一個默默無聞的帖子里看到了一個解決方案
第三種方法:把jdbcURl的ip地址鏈接,改成localhost,
(果然大神們的帖子都是干練到極致,小弟佩服)于是我就將自己的云服務(wù)器上的jdbc連接手動改成了localhost連接(開發(fā)工具上還是用ip連接,這里說的是將自己云服務(wù)器上的項目用localhost連接,所以是可以連接到數(shù)據(jù)庫的)
然后過了一段時間,發(fā)現(xiàn)是可以用的,再也沒有Communications link failure 錯誤了,當(dāng)然此時的我還是懷疑的,準(zhǔn)備長時間不連接,等第二天早上再次鏈接,發(fā)現(xiàn)再也不會報這個錯誤了,至此這個坑終于填好了。
第四種方法:
在mybatis.xml中或者其他xml中加上下面這些配置,
(該方法暫未測試,歡迎各位大佬們測試看看,如果成功的話,歡迎在評論去留言,好讓其他技術(shù)人能夠更快的解決問題)
總結(jié)
網(wǎng)上很多教程大多數(shù)是第一種方法和第二種方法,反正我是都試過了,沒有效果,可能根據(jù)mysql版本不同或者其他原因,是有用的,反正我這里是沒有用的,最終是通過第三種方法(把jdbcURl的ip地址鏈接,改成localhost),才解決這個坑的。
如果你有碰到像我這樣類似的問題,希望能夠幫助你,盡快的解決這個問題。如果你發(fā)現(xiàn)這三種方法都沒有幫你解決問題,而你是通過第四種第五種方法解決的,希望你能夠在評論處留個你解決的方法或者你解決文章的鏈接,感謝
最后,我自己是一名從事了多年開發(fā)的JAVA老程序員,辭職目前在做自己的java私人定制課程,今年年初我花了一個月整理了一份最適合2019年學(xué)習(xí)的java學(xué)習(xí)干貨,可以送給每一位喜歡java的小伙伴,想要獲取的可以關(guān)注我的頭條號并在后臺私信我:java,即可免費獲取。
下一篇:MySQL錯誤修復(fù):Table xx is marked (automatic?) repair failed