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 ドライバーのダウンロード Web サイトからドライバーを更新することをお勧めします。

于 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 に答える