intellij - mysql connector java
No se puede establecer una conexión JDBC con MySQL(usando Java, IntelliJ y Linux) (4)
Desde su cadena de conexión, esta base de datos debe estar en la máquina local. ¿Puedes intentar ejecutar este comando para asegurarte de que el socket esté abierto para las conexiones?
telnet 127.0.0.1 3306
y asegurarse de que se conecta? Es posible que no haya configurado su instancia de mysql para escuchar las conexiones desde esta máquina o en esta dirección de interfaz. Si la conexión falla, debe modificar su configuración mysql, por ejemplo:
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
Tengo problemas para obtener una conexión a la base de datos con el siguiente código:
try {
Class.forName("com.mysql.jdbc.Driver");
Properties p = new Properties();
p.put("user", user_name);
p.put("password", password);
connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1/jsp_test", p);
} catch (SQLException ex) {
// handle any errors
ex.printStackTrace();
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
return false;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
El mensaje de error que se genera es:
/ usr / lib / jvm / java-6-openjdk / bin / java -Didea.launcher.port = 7532 -Didea.launcher.bin.path = / usr / bin / idea / bin -Dfile.encoding = UTF-8 - classpath /usr/lib/jvm/java-6-openjdk/jre/lib/jce.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/about.jar:/usr/lib/jvm/ java-6-openjdk / jre / lib / resources.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/management-agent.jar: / usr / lib / jvm / java-6-openjdk / jre / lib / jsse.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/charsets.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar: /usr/lib/jvm/java-6-openjdk/jre/lib/ext/localedata.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/sunjce_provider.jar:/usr/lib /jvm/java-6-openjdk/jre/lib/ext/sunpkcs11.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/ext/dnsns.jar:/home/bedtimes/Java Projects / db_demo / out / production / db_demo: /opt/java/jre/lib/ext/mysql-connector-java-5.1.10-bin.jar: /usr/bin/idea/lib/idea_rt.jar com.intellij.rt .execution.application.AppMain Main com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Error de enlace de comunicaciones
El último paquete enviado correctamente al servidor fue hace 0 milisegundos. El controlador no ha recibido ningún paquete del servidor. at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) en java.lang.reflect.Constructor .newInstance (Constructor.java:532) en com.mysql.jdbc.Util.handleNewInstance (Util.java:406) en com.mysql.jdbc.SQLError.createCommunicationsException (SQLError.java:1074) en com.mysql.jdbc. ConnectionImpl.createNewIO (ConnectionImpl.java:2214) en com.mysql.jdbc.ConnectionImpl. (ConnectionImpl.java:781) en com.mysql.jdbc.JDBC4Connection. (JDBC4Connection.java:46) en sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Método nativo) en sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) en sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) en java.lang.reflect.Constructor.newInstance (Constructor.java:53 2) en com.mysql.jdbc.Util.handleNewInstance (Util.java:406) en com.mysql.jdbc.ConnectionImpl.getInstance (ConnectionImpl.java:352) en com.mysql.jdbc.NonRegisteringDriver.connect (NonRegisteringDriver.java : 284) en java.sql.DriverManager.getConnection (DriverManager.java:620) en java.sql.DriverManager.getConnection (DriverManager.java:169) en database.Database.connect (Database.java:80) en Main.main (Main.java:13) en sun.reflect.NativeMethodAccessorImpl.invoke0 (Método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) en sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) en java.lang.reflect.Method.invoke (Method.java:616) en com.intellij.rt.execution.application.AppMain.main (AppMain.java:110) Causado por: com.mysql.jdbc.exceptions.jdbc4. CommunicationsException: error de enlace de comunicaciones
El último paquete enviado correctamente al servidor fue hace 0 milisegundos. El controlador no ha recibido ningún paquete del servidor. at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) en java.lang.reflect.Constructor .newInstance (Constructor.java:532) en com.mysql.jdbc.Util.handleNewInstance (Util.java:406) en com.mysql.jdbc.SQLError.createCommunicationsException (SQLError.java:1074) en com.mysql.jdbc. MysqlIO. (MysqlIO.java:343) en com.mysql.jdbc.ConnectionImpl.createNewIO (ConnectionImpl.java:2137) ... 18 más Causado por: java.net.ConnectException: conexión rechazada en java.net.PlainSocketImpl.socketConnect (Método nativo) en java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:310) en java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:176) en java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:163) en java.net.SocksSocketImpl.connect (Sock sSocketImpl.java:384) en java.net.Socket.connect (Socket.java:542) en java.net.Socket.connect (Socket.java:492) en java.net.Socket. (Socket.java:389) en java.net.Socket. (Socket.java:232) en com.mysql.jdbc.StandardSocketFactory.connect (StandardSocketFactory.java:253) en com.mysql.jdbc.MysqlIO. (MysqlIO.java:292) ... 19 más SQLException: falla del enlace de comunicaciones
El último paquete enviado correctamente al servidor fue hace 0 milisegundos. El controlador no ha recibido ningún paquete del servidor. SQLState: 08S01 VendorError: 0
Proceso terminado con el código de salida 0
Literalmente, no tengo idea de cómo solucionar este mensaje de error. La base de datos existe. El nombre de usuario y la contraseña existen. Actualmente no he agregado ninguna tabla a la base de datos, pero no creo que ese sea el problema, ya que solo estoy haciendo una conexión después de todo ...
Puedo proporcionar información adicional si es necesario. Siento que lo he intentado mucho ¿Alguien sabe alguna forma de obtener más información sobre cómo y por qué está fallando?
¡Gracias por tu ayuda! :)
Tenía los mismos síntomas, pero para mí la solución era cambiar la dirección de enlace a 0.0.0.0 en /etc/mysql/my.cnf
(Solo publica esto para otros que buscan una respuesta a esta pregunta)
Puedes probar esto en su lugar:
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_test","user_name","password");
puedes probar uno de los siguientes
"jdbc:mysql://localhost:3306/jsp_test","username","password"
o
"jdbc:mysql://''your machines ip (without quote)'':3306/jsp_test","username","password"
o
"jdbc:mysql://127.0.0.1:3306/jsp_test","username","password"
como una cadena de conexión.