1

Connector/J を使用して mysql データベースに接続しようとしていますが、どのコードを使用しても同じメッセージが表示されます。debianでmysqlコマンドを使用して手動で接続できます。

エラーはYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '????????????????' at line 1

最新のコードは次のとおりです。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class E{
  public void connect(){
    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      conn = DriverManager.getConnection(
           "jdbc:mysql://192.168.1.3:3306/dbname?user=dbuser&password=dbpw");
    }catch( Exception e){
      System.out.printf("Something went wrong: "+e.getMessage());
  }
}

getConnection 呼び出しで失敗します。NetBeans にはこれに関する問題がないため、print ステートメントを使用してこれを把握しました (ただし、不良ホストを入れて NetBeans から実行しても問題はありません)。

DataSource でもまったく同じ問題が発生します

import java.sql.*;
import javax.sql.*;
...
com.mysql.jdbc.jdbc2.optional.MysqlDataSource ds
    = new com.mysql.jdbc.jdbc2.optional.MysqlDataSource();
ds.setServerName("192.168.1.3");
ds.setPortNumber(3306);
ds.setDatabaseName("dbname");
ds.setUser("dbuser");
ds.setPassword("dbpw");
conn = ds.getConnection();
...

間違ったパスワードを入力すると、アクセス拒否メッセージが表示されるため、何かが機能しています。
私は mysql-connector-java-5.1.22-bin.jar5.1.21を使用していて、同じ問題を抱えていました。

4

3 に答える 3

1

これらはあなたを助けるかもしれません:

SQL 構文にエラーがあります。MySQLに対応するマニュアルを確認してください

MySQL サーバーへの接続に関する問題

于 2012-09-11T14:39:07.780 に答える
0

次のことがわかりました: JDBC の Stumped SQL Exception

簡単に言うと、サーバーの my.cnf ファイルには次のものが必要です。

character_set_server=utf8
collation_server=utf8_general_ci

また、GCJ (gnu Java コンパイラ) は危険だとも言いましたが、私はそれを置き換えませんでした

于 2012-09-12T04:05:32.177 に答える
0

あなたのgetConnection声明は
conn = DriverManager.getConnection("jdbc:mysql://192.168.1.3:3306/dbname", "dbuser", "dbpw");

この例を参照してください

于 2012-09-11T14:39:42.283 に答える