Estoy escribiendo un programa Flink simple para mover datos de MySQL a Mongo.
Estoy usando mysql-conector-java 8.0.16.
Cuando intento conectarme a nuestra base de datos env de prueba (MySQL 8.0.15), el programa funciona bien. La cadena de conexión se ve así:
jdbc:mysql://my-test-db-url:3306/my_db_namePero una vez que lo conecté a nuestra base de datos de producción (MySQL 8.0.16), obtuve:
java.sql.SQLException: No suitable driver found for jdbc:mysql://my-prod-db-url:3306/my_db_nameLa única diferencia de estos DB es la versión menor (15 vs 16).
Actualicé mi base de datos de prueba a 8.0.16 para ver si hay un problema con esa versión del servidor mysql. Y, de hecho, ahora tampoco puedo conectarme a la base de datos de prueba, obteniendo la misma excepción.
Después de eso, continué actualizando mysql-connector-java y test DB a 8.0.17, pero el problema persiste.
En mis otros proyectos, puedo conectarme a esas bases de datos mysql muy bien (usando spring data jpa con mysql-connector-java 8.0.18). Entonces el servidor db no debería tener ningún problema.
esto no funcionó
no se arrojó ningún error en la clase principal
// tried both Class.forName("com.mysql.jdbc.Driver").newInstance(); Class.forName("com.mysql.cj.jdbc.Driver").newInstance();También me aseguré de que, después de ejecutar el paquete maven, mi fat jar contuviera los archivos de clase del conector.
Ahora estoy bastante despistado. Alguien por favor sálvame.
Resolví el mismo problema usando Class.forName("org.sqlite.JDBC") (estaba usando sqlite) antes de llamar a DriverManager.getConnection . Es casi lo mismo que has probado pero sin llamar a newInstance() .