Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

321
Views
Usando mysql-connector-java en Flink: no se encontró un controlador adecuado al conectarse a mysql> = 8.0.16

Estoy escribiendo un programa Flink simple para mover datos de MySQL a Mongo.

Estoy usando mysql-conector-java 8.0.16.

El problema

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_name

Pero 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_name

La única diferencia de estos DB es la versión menor (15 vs 16).

lo que he probado

Actualización de la base de datos de prueba para que coincida con la versión de la base de datos de producción

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.

Coloque manualmente mysql-connector-java jar en la carpeta flink/lib

esto no funcionó

Registrar el controlador manualmente en la clase principal y el método abierto de mi función fuente mysql

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.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

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() .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!