简体   繁体   中英

StackOverflowError when trying to establish connection to MySQL database

I am currently getting a very strange error when I try to establish a connection to my MySQL database by using the Java jdbc driver. The error is not really helping me to solve the issue. How can I fix this?

Please find the code and the error message below:

    public static void main (String[] args) throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{
        
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3305/testDB", "root", "");
    }
Exception in thread "main" java.lang.StackOverflowError
        at java.base/javax.crypto.Cipher.init(Cipher.java:1430)
        at java.base/sun.security.ssl.SSLCipher$T13GcmWriteCipherGenerator$GcmWriteCipher.encrypt(SSLCipher.java:2019)
        at java.base/sun.security.ssl.OutputRecord.t13Encrypt(OutputRecord.java:451)
        at java.base/sun.security.ssl.OutputRecord.encrypt(OutputRecord.java:414)
        at java.base/sun.security.ssl.SSLSocketOutputRecord.deliver(SSLSocketOutputRecord.java:316)
        at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1212)
        at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81)
        at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142)
        at com.mysql.cj.protocol.a.SimplePacketSender.send(SimplePacketSender.java:55)
        at com.mysql.cj.protocol.a.TimeTrackingPacketSender.send(TimeTrackingPacketSender.java:50)
        at com.mysql.cj.protocol.a.NativeProtocol.send(NativeProtocol.java:568)
        at com.mysql.cj.protocol.a.NativeProtocol.sendCommand(NativeProtocol.java:632)
        at com.mysql.cj.protocol.a.NativeProtocol.convertShowWarningsToSQLWarnings(NativeProtocol.java:2107)
        at com.mysql.cj.protocol.a.NativeProtocol.scanForAndThrowDataTruncation(NativeProtocol.java:1938)
        at com.mysql.cj.protocol.a.NativeProtocol.readAllResults(NativeProtocol.java:1670)
        at com.mysql.cj.protocol.a.NativeProtocol.convertShowWarningsToSQLWarnings(NativeProtocol.java:2109)
        at com.mysql.cj.protocol.a.NativeProtocol.scanForAndThrowDataTruncation(NativeProtocol.java:1938)
        at com.mysql.cj.protocol.a.NativeProtocol.readAllResults(NativeProtocol.java:1670)
        at com.mysql.cj.protocol.a.NativeProtocol.convertShowWarningsToSQLWarnings(NativeProtocol.java:2109)
       ...
        at com.mysql.cj.protocol.a.NativeProtocol.scanForAndThrowDataTruncation(NativeProtocol.java:1938)
        at com.mysql.cj.protocol.a.NativeProtocol.readAllResults(NativeProtocol.java:1670)
        at com.mysql.cj.protocol.a.NativeProtocol.convertShowWarningsToSQLWarnings(NativeProtocol.java:2109)

Additional remarks: mysql_connector is added to classpath, port 3305 is active

The documentation for Connector/J connection establishment suggests using this line.

Class.forName("com.mysql.cj.jdbc.Driver").newInstance();

Try that.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM