com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Verbindung zum Datenbankserver konnte nicht hergestellt werden [duplicate]

Lesezeit: 4 Minuten

Java commysqljdbcexceptionsjdbc4MySQLNonTransientConnectionException Verbindung zum Datenbankserver konnte nicht hergestellt werden duplicate
Alexej Bugerja

Ich bin neu in Datenbanken und habe gerade angefangen, sie zu lernen. Ich habe MySQL Server 8.0., Workbench 8.0, Java Connector 5.1.31, Java 1.8 selbst. Befolgte mehrere Anleitungen für Neulinge, wie man damit beginnt.

Es gibt also den Fall. Ich habe eine Datenbank auf localhost und verbinde mich erfolgreich mit Workbench und über die Windows-Eingabeaufforderung. Aber nachdem ich Code in Java ausgeführt habe:

        Driver sqlDriver = new FabricMySQLDriver();
        DriverManager.registerDriver(sqlDriver);
        Connection sqlConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/?user=root", "root", "root");

Ich bekomme eine Ausnahme com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

Warum konnte es passieren? Ich habe versucht, MySQL neu zu installieren, OS-Variablen bereinigt, überall gesucht und keine Lösung gefunden. Würde mich freuen, hier fündig zu werden.

AKTUALISIERT:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
    at com.mysql.jdbc.Util.getInstance(Util.java:383)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1023)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:997)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:983)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:928)
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2407)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2328)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:832)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:408)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:417)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:344)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at com.company.Main.main(Main.java:11)
Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ConnectionImpl.getServerCharacterEncoding(ConnectionImpl.java:3309)
    at com.mysql.jdbc.MysqlIO.sendConnectionAttributes(MysqlIO.java:1985)
    at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1911)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1288)
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2508)
    at com.mysql.jdbc.ConnectionImpl.connectWithRetries(ConnectionImpl.java:2346)
    ... 13 more

  • hast du dir stackoverflow.com/questions/2297356/… angesehen

    – AbtPst

    4. Mai 2018 um 15:11 Uhr

  • Bitte posten Sie den vollständigen Ausnahme-Stacktrace, er enthält weitere Informationen, um die zugrunde liegende Ursache zu ermitteln. Auf jeden Fall ist MySQL Connector/J ziemlich alt, vielleicht möchten Sie eine neuere Version wie 5.1.46 oder 8.0.11 ausprobieren. Beachten Sie auch, dass Sie wahrscheinlich nicht verwenden sollten FabricMySQLDrivergeschweige denn selbst registrieren.

    – Mark Rotteveel

    4. Mai 2018 um 15:32 Uhr

  • @MarkRotteveel Danke. Versuchte Connector-Version 5.1.46 und es funktioniert. Aktualisierte Kopfnachricht mit vollständigem Stacktrace, den ich zuvor hatte

    – Alexey Bugerya

    5. Mai 2018 um 5:34 Uhr

  • @MarkRotteveel Und warum sollte ich FabricMySQLDriver nicht verwenden? Ist es falsch oder nur überflüssig?

    – Alexey Bugerya

    5. Mai 2018 um 6:13 Uhr

  • Der Fabric-Treiber ist für hochverfügbare MySQL-Bereitstellungen vorgesehen, die Sie meiner Meinung nach nicht verwenden. Darüber hinaus ist eine bestimmte JDBC-URL erforderlich (fabric würde erfordern jdbc:mysql:fabric: als Präfix), also verwenden Sie im Moment nur den automatisch geladenen normalen Treiber.

    – Mark Rotteveel

    5. Mai 2018 um 7:15 Uhr

commysqljdbcexceptionsjdbc4MySQLNonTransientConnectionException Verbindung zum Datenbankserver konnte nicht hergestellt werden duplicate
Markus Rotteveel

Das Problem ist die Kompatibilität älterer Versionen von MySQL Connector/J mit MySQL 8. Sie müssen entweder auf MySQL Connector/J 5.1.46 oder – besser – 8.0.11 (oder eine höhere Version) aktualisieren.

  • danke du hast mich gerettet… 🙂

    – Jasser

    3. Juli 2018 um 16:41 Uhr

  • Vielen Dank, hat mir wirklich den Tag gerettet 🙂

    – Andreas Meleka

    5. November 2018 um 19:49 Uhr

  • Danke, es funktioniert mit 8.0.16

    – Jhonny Ramirez Zeballos

    8. Juli 2019 um 15:47 Uhr


  • @YehanPemarathne Möglicherweise möchten Sie stattdessen ein Upgrade auf den 8.0.x-Treiber in Betracht ziehen, und selbst wenn Sie auf 5.1.x bleiben, aktualisieren Sie dann auf die neueste Version 5.1.x, nämlich 5.1.49.

    – Mark Rotteveel

    17. Mai 2021 um 8:35 Uhr


  • @MarcoSchoolenberg Für MariaDB sollten Sie den MariaDB Java Connector verwenden, der unter verfügbar ist mariadb.com/downloads/#connectors

    – Mark Rotteveel

    19. Mai 2021 um 12:31 Uhr

commysqljdbcexceptionsjdbc4MySQLNonTransientConnectionException Verbindung zum Datenbankserver konnte nicht hergestellt werden duplicate
Ramesh Kumar

In meinem Fall habe ich Maven Dependency verwendet, um den JDBC-Connector zu verwenden. Ich habe gerade die Version der Abhängigkeit geändert. Das hat bei mir funktioniert

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>

Fügen Sie die folgende Version hinzu und es wird Ihnen gut gehen:

<mysql.driver.version>8.0.20</mysql.driver.version>

996310cookie-checkcom.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Verbindung zum Datenbankserver konnte nicht hergestellt werden [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy