java报错Communications link failure 该如何解决?
天蓬老师
天蓬老师 2017-04-18 10:52:26
0
2
506
  1. 就是普通的查询mysql数据库的代码:

  2. 错误栈如下:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2209)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:776)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:352)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:284)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at testHttpConnection.util.DBUtil.getConn(DBUtil.java:26)
    at testHttpConnection.TestMysql.main(TestMysql.java:23)
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:675)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1078)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2137)
    ... 13 more
Caused by: java.net.SocketException: Permission denied: recv failed
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:152)
    at java.net.SocketInputStream.read(SocketInputStream.java:122)
    at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
    at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
    at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2494)
    at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:599)
    ... 15 more
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

membalas semua(2)
PHPzhong

Izinkan saya berkongsi penyelesaian kepada ralat yang saya alami sebelum ini, yang berbeza daripada tingkat satu:

eclipse中,设置“Default VM arguments”添加:“-Djava.net.preferIPv4Stack=true”

Punca khusus ralat nampaknya disebabkan oleh perubahan konfigurasi dalam jvm, yang menghalang jvm daripada mendapatkan beberapa maklumat melalui rangkaian

Ty80

Ini sepatutnya menyelesaikan masalah anda:
Penyelesaian kepada kegagalan pautan Komunikasi

Gunakan Connector/J untuk menyambung ke pangkalan data MySQL Selepas program berjalan untuk masa yang lama, ralat berikut akan dilaporkan:
Kegagalan pautan komunikasi, Paket terakhir yang berjaya diterima daripada pelayan ialah <.> milisaat lalu .Paket terakhir yang berjaya dihantar ke pelayan ialah milisaat lalu.

Ralat juga akan menggesa anda untuk mengubah suai tunggu_masa tamat atau menggunakan atribut autoReconnect Penyambung/J untuk mengelakkan ralat ini.

Setelah menyemak beberapa maklumat, saya mendapati terdapat segelintir orang yang menghadapi masalah ini Kebanyakan daripada mereka mengalami masalah ini apabila menggunakan kaedah sambungan sambungan. Punca masalah ini:
"wait_timeout" lalai pelayan MySQL ialah 28800 saat atau 8 jam, yang bermaksud bahawa jika sambungan melahu selama lebih daripada 8 jam, MySQL akan memutuskan sambungan secara automatik, tetapi kumpulan sambungan berpendapat bahawa sambungan Ia masih sah (kerana kesahihan sambungan belum disahkan apabila aplikasi memohon untuk menggunakan sambungan, ia akan menyebabkan ralat di atas).
Ubah suai parameter MySQL Tempoh tunggu maksimum ialah 31536000 atau 1 tahun Tambahkan pada my.cnf:
[mysqld]
wait_timeout=31536000
interactive_timeout=3153600> dan Restar🎜>. perlu diubah suai pada masa yang sama.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!