Rumah > Soal Jawab > teks badan
就是普通的查询mysql数据库的代码:
错误栈如下:
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
PHPz2017-04-18 10:54:26
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
PHP中文网2017-04-18 10:54:26
Ini sepatutnya menyelesaikan masalah anda:
Penyelesaian kepada kegagalan pautan Komunikasi
Ralat juga akan menggesa anda untuk mengubah suai tunggu_masa tamat atau menggunakan atribut autoReconnect Penyambung/J untuk mengelakkan ralat ini.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.
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.