web-dev-qa-db-fra.com

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: impossible de créer une connexion au serveur de base de données

Je suis nouveau dans les bases de données, je viens de commencer à les apprendre. J'ai MySQL Server 8.0., Workbench 8.0, Java connecteur 5.1.31, Java 1.8 lui-même. J'ai suivi plusieurs guides pour les débutants comment commencer).

Voilà donc le cas. J'ai une base de données sur localhost et je me connecte avec succès avec Workbench et via Windows Prompt. Mais après avoir exécuté du code en Java:

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

Je reçois une exception com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

Pourquoi cela pourrait-il arriver? J'ai essayé de réinstaller MySQL, les variables OS nettoyées, j'ai cherché partout et je n'ai pas trouvé de solution. Serait heureux de le trouver ici.

UPD:

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
7
Alexey Bugerya

Le problème est la compatibilité des anciennes versions de MySQL Connector/J avec MySQL 8. Vous devez mettre à niveau vers MySQL Connector/J 5.1.46 ou - mieux - 8.0.11 (ou une version supérieure).

27
Mark Rotteveel

Dans mon cas, j'utilisais la dépendance maven pour utiliser le connecteur JDBC. Je viens de changer la version de la dépendance. Cela a fonctionné pour moi

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-Java</artifactId>
        <version>5.1.46</version>
    </dependency>
10
Ramesh Kumar