0

我在握手期间收到错误通信失败。localhost:3306 上是否有服务器运行?我已经使用类型 4 jdbc 驱动程序编写了一个 jdbc 程序,我想执行删除操作,ide 是 eclipse。代码:

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

检测到错误:

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

2 回答 2

0

这可能是因为使用了旧的MySQL Connector/JJDBC 驱动程序。我假设您已经安装了最新的 MySQL,并且您正在尝试使用旧版本的 MySQL Connector jar 进行连接。

您可能想从MySQL 驱动程序下载网站更新您的驱动程序

于 2012-07-31T14:16:00.957 回答
0

如果您从 cmd 提示符编译 java 代码,则意味着您需要在通过这种方式编译之前设置 java 路径。

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

一旦你设置了环境变量意味着你不需要每次都设置java路径,只需查看如何设置环境变量的链接。

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

并且在使用 mysql 时还可以查看链接,您需要设置 CLASSPATH 查看链接

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

于 2012-08-01T05:35:20.950 回答