com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: no se pudo crear la conexión con el servidor de la base de datos [duplicate]

4 minutos de lectura

avatar de usuario
Alexey Bugerya

Soy nuevo en bases de datos, recién comencé a aprenderlas. Tengo MySQL Server 8.0., Workbench 8.0, conector Java 5.1.31, Java 1.8 en sí. Seguí varias guías para principiantes sobre cómo empezar.

Así que ahí está el caso. Tengo una base de datos en localhost y me conecto con éxito con Workbench y a través del indicador de Windows. Pero después de ejecutar el código en Java:

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

obtengo una excepción com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

¿Por qué podría pasar? Intenté reinstalar MySQL, limpié las variables del sistema operativo, busqué en todas partes y no pude encontrar una solución. Estaría encantado de encontrarlo aquí.

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

  • has mirado en stackoverflow.com/questions/2297356/…

    – AbtPst

    4 mayo 2018 a las 15:11

  • Publique el seguimiento completo de la excepción, proporciona más información para determinar la causa subyacente. En cualquier caso, MySQL Connector/J es bastante antiguo, es posible que desee probar una versión más nueva como 5.1.46 o 8.0.11. También tenga en cuenta que probablemente no debería estar usando el FabricMySQLDrivery mucho menos registrarlo usted mismo.

    – Mark Rotteveel

    4 mayo 2018 a las 15:32

  • @MarkRotteveel Gracias. Probé la versión 5.1.46 del conector y funciona. Mensaje principal actualizado con stacktrace completo que tenía antes

    – Alexey Bugerya

    5 de mayo de 2018 a las 5:34

  • @MarkRotteveel ¿Y por qué no debería usar FabricMySQLDriver? ¿Está mal o simplemente es redundante?

    – Alexey Bugerya

    5 de mayo de 2018 a las 6:13

  • El controlador Fabric es para implementaciones de MySQL de alta disponibilidad, que no creo que esté usando. Además de eso, requiere una URL JDBC específica (fabric requeriría jdbc:mysql:fabric: como prefijo), por lo que en este momento solo está utilizando el controlador normal cargado automáticamente.

    – Mark Rotteveel

    5 de mayo de 2018 a las 7:15

avatar de usuario
Marcos Rotteveel

El problema es la compatibilidad de versiones anteriores de MySQL Connector/J con MySQL 8. Debe actualizar a MySQL Connector/J 5.1.46 o, mejor, 8.0.11 (o una versión superior).

  • gracias me salvaste… 🙂

    – Jasser

    3 de julio de 2018 a las 16:41

  • Muchas gracias, realmente salvó mi día 🙂

    – Andrew Melek

    5 de noviembre de 2018 a las 19:49

  • Gracias, funciona con 8.0.16

    – Jhonny Ramírez Zeballos

    8 de julio de 2019 a las 15:47


  • @YehanPemarathne Es posible que desee considerar actualizar al controlador 8.0.x, e incluso si permanece en 5.1.x, actualice a la última 5.1.x, que es 5.1.49.

    – Mark Rotteveel

    17 mayo 2021 a las 8:35


  • @MarcoSchoolenberg Para MariaDB, debe usar MariaDB Java Connector, disponible en mariadb.com/downloads/#conectores

    – Mark Rotteveel

    19 mayo 2021 a las 12:31

avatar de usuario
ramesh kumar

En mi caso, estaba usando Maven Dependency para usar el conector JDBC. Acabo de cambiar la versión de dependencia. esto funcionó para mí

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

Agregue la siguiente versión y estará bien:

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

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad