JDBC - Error en la comunicación (MySQL + Eclipse)

Recibo un error Fallo de comunicación durante el protocolo de enlace. ¿Hay un servidor ejecutándose en localhost:3306? He escrito un programa jdbc usando el controlador jdbc tipo 4 y quiero realizar una operación de eliminación y el ide es eclipse. código:

Class.forName("com.mysql.jdbc.Driver");
String cs="jdbc:mysql://localhost:3306/account_db";
Connection con=DriverManager.getConnection(cs,"root",<password>);
PreparedStatement ps=con.prepareStatement("delete from empde emp_id=?");
Scanner s=new Scanner(System.in);
while(true)
{
    System.out.println("enter the emp_id :");
    int ac_id=s.nextInt();
    ps.setInt(1,emp_id);
    ps.executeUpdate();
    System.out.println("one emp_id is deleted:");
    System.out.println("one more emp_id?(yes/no)");
    String choice=s.next();
    if(choice.equals("no"))
    System.out.println("empde is exit");
    break;
}
ps.close();
con.close();

Error detectado:

java.sql.SQLException: Communication failure during handshake. Is there a server running on localhost:3306? at com.mysql.jdbc.MysqlIO.init(Unknown Source) 

preguntado el 31 de julio de 12 a las 14:07

¿Qué error te dio, podrías explicarlo brevemente? -

java.sql.SQLException: error de comunicación durante el protocolo de enlace. ¿Hay un servidor ejecutándose en localhost:3306? en com.mysql.jdbc.MysqlIO.init (fuente desconocida) -

puede deberse a mysql, ¿revisó su mysql ejecutándose en el host local (puerto 3306)?

sí, acabo de comprobar la conexión y dice que los parámetros de conexión son correctos -

y traté de ejecutar el mismo programa usando el símbolo del sistema cmd y dio un error que indica que java.lang.no classdef si tengo que configurar el classpath, dígame cómo configurarlo:

2 Respuestas

Esto puede deberse al uso de un viejo MySQL Connector/J controlador JDBC. Supongo que tiene instalada la última versión de MySQL y está intentando conectarse usando una versión anterior de MySQL Connector jar.

Es posible que desee actualizar su controlador desde el Sitio web de descarga de controladores MySQL

Respondido 31 Jul 12, 15:07

si compila el código de Java desde el indicador de cmd, significa que necesita establecer la ruta de Java antes de compilar de esta manera.

set path=(drivein which java is stored):\program files\java\jdk(version)\bin;
ex: set path=C:\program files\Java\jdk1.6.0\lib;

una vez que configura la variable de entorno, significa que no necesita configurar la ruta de Java para cada vez, solo vea el enlace sobre cómo configurar la variable de entorno.

http://www.roseindia.net/java/java-classpath.shtml

y también vea el enlace cuando use mysql, necesita configurar CLASSPATH vea el enlace

http://java.blogs.webucator.com/2010/07/05/java-database-connectivity-jdbc-basics-using-mysql/

Respondido 01 ago 12, 06:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.