SSLException:在接收对等方的close_notify之前关闭入站

时间:2018-12-16 14:37:33

标签: java mysql jdbc

我正在用MySQL编写一个简单的JDBC代码。一切正常,我可以通过select语句在表中打印记录。但是,当我使用Connection.close()关闭连接时,出现以下异常。任何帮助表示赞赏。

 WARN: Caught while disconnecting...
EXCEPTION STACK TRACE:
** BEGIN NESTED EXCEPTION ** 
javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer's close_notify
 STACKTRACE:
 javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129)
    at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:264)
    at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:255)
    at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:645)
    at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:624)
    at com.mysql.cj.protocol.a.NativeProtocol.quit(NativeProtocol.java:1312)
    at com.mysql.cj.NativeSession.quit(NativeSession.java:182)
    at com.mysql.cj.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:1750)
    at com.mysql.cj.jdbc.ConnectionImpl.close(ConnectionImpl.java:720)
    at com.jdbc.Driver.display(Driver.java:27)
    at com.jdbc.Driver.main(Driver.java:38)

3 个答案:

答案 0 :(得分:4)

这是Java 11 https://bugs.mysql.com/bug.php?id=93590上的MySQL驱动程序的问题

此问题已在Connector / J版本8.0.16中修复

答案 1 :(得分:0)

另一种解决方法是通过将 ?useSSL=false 附加到 JDBC URL 来禁用 SSL

jdbc:mysql://localhost:port/database_name?useSSL=false

答案 2 :(得分:-1)

设置db_url =“ jdbc:mysql:// localhost:3306 / TEST?useSSL = false”,TEST是我的本地主机数据库。