unable plugin error descargar conectar con caching_sha2_password java mysql sql jdbc connectivity

java - plugin - mysql connector jar



java.sql.SQLException: No se encontrĂ³ un controlador adecuado para jdbc: mysql:// localhost: 3306/dbname (9)

Esta pregunta ya tiene una respuesta aquí:

Tengo este programa de Java: MySQLConnectExample.java

import java.sql.*; import java.util.Properties; public class MySQLConnectExample { public static void main(String[] args) { Connection conn1 = null; Connection conn2 = null; Connection conn3 = null; try { String url1 = "jdbc:mysql://localhost:3306/aavikme"; String user = "root"; String password = "aa"; conn1 = DriverManager.getConnection(url1, user, password); if (conn1 != null) System.out.println("Connected to the database test1"); String url2 = "jdbc:mysql://localhost:3306/aavikme?user=root&password=aa"; conn2 = DriverManager.getConnection(url2); if (conn2 != null) { System.out.println("Connected to the database test2"); } String url3 = "jdbc:mysql://localhost:3306/aavikme"; Properties info = new Properties(); info.put("user", "root"); info.put("password", "aa"); conn3 = DriverManager.getConnection(url3, info); if (conn3 != null) { System.out.println("Connected to the database test3"); } } catch (SQLException ex) { System.out.println("An error occurred. Maybe user/password is invalid"); ex.printStackTrace(); } } }

Lo compilo así:

E:/java mysql code driver>javac MySQLConnectExample.java E:/java mysql code driver>java -cp mysql-connector-java-3.0.11-stable-bin.jar;. MySQLConnectExample

Me sale este error:

An error occurred. Maybe user/password is invalid java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/ aavikme at java.sql.DriverManager.getConnection(DriverManager.java:596) at java.sql.DriverManager.getConnection(DriverManager.java:215) at MySQLConnectExample.main(MySQLConnectExample.java:20)

¿Qué estoy haciendo mal?


Asegúrate de ejecutar esto primero:

Class.forName("com.mysql.jdbc.Driver");

Esto obliga al controlador a registrarse, por lo que Java sabe cómo manejar esas cadenas de conexión de base de datos.

Para obtener más información, consulte la referencia del conector de MySQL .


En su código, falta Class.forName("com.mysql.jdbc.Driver");

Esto es lo que te hace falta para que todo funcione.


Es posible que no haya copiado el archivo MySQL connector/J jar en la carpeta lib y que este archivo deba estar allí en classpath.

Si no lo ha hecho, hágamelo saber que elaboraré la respuesta


Tienes que cargar el jdbc driver . Considere el siguiente código.

try { Class.forName("com.mysql.jdbc.Driver"); // connect way #1 String url1 = "jdbc:mysql://localhost:3306/aavikme"; String user = "root"; String password = "aa"; conn1 = DriverManager.getConnection(url1, user, password); if (conn1 != null) { System.out.println("Connected to the database test1"); } // connect way #2 String url2 = "jdbc:mysql://localhost:3306/aavikme?user=root&password=aa"; conn2 = DriverManager.getConnection(url2); if (conn2 != null) { System.out.println("Connected to the database test2"); } // connect way #3 String url3 = "jdbc:mysql://localhost:3306/aavikme"; Properties info = new Properties(); info.put("user", "root"); info.put("password", "aa"); conn3 = DriverManager.getConnection(url3, info); if (conn3 != null) { System.out.println("Connected to the database test3"); } } catch (SQLException ex) { System.out.println("An error occurred. Maybe user/password is invalid"); ex.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); }


Todas las respuestas aquí usan Class.forName("my.vandor.Driver"); línea para cargar el controlador.

Como alternativa (mejor), puede utilizar la clase de ayuda DriverManager que le proporciona varios métodos para manejar sus controladores JDBC.

Tu podrías querer

  1. Use DriverManager.registerDriver(driverObject); para registrar su controlador a su lista de controladores

Registra el controlador dado con el DriverManager. Una clase de controlador recién cargada debe llamar al método registerDriver para darse a conocer al DriverManager. Si el controlador está actualmente registrado, no se toma ninguna medida

  1. Utilice DriverManager.deregisterDriver(driverObject); para eliminarlo

Elimina el controlador especificado de la lista de controladores registrados del DriverManager.

Ejemplo:

Driver driver = new oracle.jdbc.OracleDriver(); DriverManager.registerDriver(driver); Connection conn = DriverManager.getConnection(url, user, password); // ... // and when you don''t need anything else from the driver DriverManager.deregisterDriver(driver);

o mejor aún, use un DataSource


Tuve el mismo problema, mi código está a continuación:

private Connection conn = DriverManager.getConnection(Constant.MYSQL_URL, Constant.MYSQL_USER, Constant.MYSQL_PASSWORD); private Statement stmt = conn.createStatement();

No he cargado la clase de controlador, pero puedo trabajar en local, puedo consultar el resultado de MySQL, sin embargo, no funciono cuando lo despliegue en Tomcat, y ocurre los siguientes errores:

No suitable driver found for jdbc:mysql://172.16.41.54:3306/eduCloud

así que cargué la clase de controlador de la siguiente manera cuando veo la respuesta a esta pregunta de la página:

Class.forName("com.mysql.jdbc.Driver");

Ahora funciona ! No sé por qué funciona bien en local, ¡necesito tu ayuda, muchas gracias!


Tuve un problema similar, solo verifique el puerto donde se ejecuta su servidor Mysql, que resolverá el problema

Por ejemplo, mi código era:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:8080/bddventas","root","");

cambio la cuerda a

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bddventas","root","");

y voila !!, esto funciona porque mi servidor se estaba ejecutando en ese puerto

Espero que esto ayude


Un ejemplo de recuperación de datos de una tabla con columnas column1, column2, column3 column4, cloumn1 y 2 contiene valores int y columnas 3 y 4 hold varchar(10)

import java.sql.*; // need to import this as the STEP 1. Has the classes that you mentioned public class JDBCexample { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://LocalHost:3306/databaseNameHere"; // DON''T PUT ANY SPACES IN BETWEEN and give the name of the database (case insensitive) // database credentials static final String USER = "root"; // usually when you install MySQL, it logs in as root static final String PASS = ""; // and the default password is blank public static void main(String[] args) { Connection conn = null; Statement stmt = null; try { // registering the driver__STEP 2 Class.forName("com.mysql.jdbc.Driver"); // returns a Class object of com.mysql.jdbc.Driver // (forName(""); initializes the class passed to it as String) i.e initializing the // "suitable" driver System.out.println("connecting to the database"); // opening a connection__STEP 3 conn = DriverManager.getConnection(DB_URL, USER, PASS); // executing a query__STEP 4 System.out.println("creating a statement.."); stmt = conn.createStatement(); // creating an object to create statements in SQL String sql; sql = "SELECT column1, cloumn2, column3, column4 from jdbcTest;"; // this is what you would have typed in CLI for MySQL ResultSet rs = stmt.executeQuery(sql); // executing the query__STEP 5 (and retrieving the results in an object of ResultSet) // extracting data from result set while(rs.next()){ // retrieve by column name int value1 = rs.getInt("column1"); int value2 = rs.getInt("column2"); String value3 = rs.getString("column3"); String value4 = rs.getString("columnm4"); // displaying values: System.out.println("column1 "+ value1); System.out.println("column2 "+ value2); System.out.println("column3 "+ value3); System.out.println("column4 "+ value4); } // cleaning up__STEP 6 rs.close(); stmt.close(); conn.close(); } catch (SQLException e) { // handle sql exception e.printStackTrace(); }catch (Exception e) { // TODO: handle exception for class.forName e.printStackTrace(); }finally{ //closing the resources..STEP 7 try { if (stmt != null) stmt.close(); } catch (SQLException e2) { e2.printStackTrace(); }try { if (conn != null) { conn.close(); } } catch (SQLException e2) { e2.printStackTrace(); } } System.out.println("good bye"); } }


prueba esto

String url = "jdbc:mysql://localhost:3306/<dbname>"; String user = "<username>"; String password = "<password>"; conn = DriverManager.getConnection(url, user, password);