首先,我知道這個問題被問了很多次,但對我來說,再現的場景與我想的差不多(很可能)。通信鏈路故障發送到服務器的最後一個數據包是4毫秒前
對於mysql健康檢查,我們做一個簡單的選擇查詢(從雙重選擇1)。 一旦MySQL服務器去閒置了一段時間(約1分鐘),我們試圖健康檢查,我們得到這個問題..
通信鏈路故障\ n發送到服務器\ n上次數據包是4毫秒前
「message」:「無法讀取服務器的響應,預計會讀取4個字節,在連接意外丟失之前讀取0個字節」, 「stack」:[「com.mysql.jdbc.MysqlIO.readFully(MysqlIO .java:2431)「,」com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2882)「, 」com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2871)「, 」com。 mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:3414)「, 」com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)「, 」com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)「, 」com。 mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)「, 」com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)「, 」com.mysql.jdbc.StatementImpl.execute(StatementImpl。 Java的:734)」, 「org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java:264)」,
,如果我們立即再次嘗試,我們獲得成功的連接,一切工作正常。所以它的性質非常零星。
我看到這個計算器張貼com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
所以出這一切的可能性。我會回答一些在JDBC URL those-
IP地址或主機名是錯誤的。 -NO(它可以在第二次嘗試通信失敗後)
主機名在JDBC URL不是由本地DNS服務器的認可。 -No(相同的理由,步驟1)
端口號丟失或錯誤的JDBC URL。 -No(相同的理由,步驟1)
DB服務器已關閉。 -NO-(服務器啓動並運行)
DB服務器不接受TCP/IP連接。 -No(相同的理由,步驟1)
DB服務器已用盡連接。 -No(連接數1000我已經增加)
在Java和DB之間有物體擋住的連接,例如防火牆或代理。
是的。代理配置如下:
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 3000
很少我的etc/my。CONF明細follows--
connect_timeout = 10
wait_timeout = 28800
bind-address = 0.0.0.0
max_connections = 1000
對於創建連接,我使用的公共DBCP數據源(org.apache.commons.dbcp.BasicDataSource)
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("url");
dataSource.setUsername("username");
dataSource.setPassword("pwd");
dataSource.getConnection();
請幫我找到什麼可以去錯了..是它的代理配置,導致問題或其他?幫助將不勝感激。
我沒有看到移除[tag:mysql]標籤的意義,因爲MySQL的指紋都在堆棧跟蹤中。 – EJP
Hai @EJP,謝謝你的時間。我刪除了mysql,因爲我正在使用的數據庫服務器是Percona服務器,它的方式不過是mysql,只是爲了確切地說,我已經刪除了mysql標記並添加了percona。 – RIPAN
您正在使用MySQL JDBC驅動程序,這是異常來自的地方。 – EJP