1

jdbc接続を使用してリモートmysqlデータベースに接続しようとしています。しかし、私は得ています

java.sql.SQLException: Java クラスの実行時にこの例外がユーザーに対してアクセス拒否されました。しかし、mysql クエリ ブラウザまたは mysql コマンドを使用して、このデータベースに接続できます。jdbc ドライバーを以前のバージョンに置き換えましたが、それでもこのエラーが発生します。リモート データベースへの読み取り専用アクセスしかありません。これを解決するのを手伝ってください。

try { // これにより、MySQL ドライバーがロードされます。各 DB には独自のドライバーがあります Class.forName("com.mysql.jdbc.Driver"); // DB との接続をセットアップします

  connect = DriverManager
      .getConnection("jdbc:mysql://myremotehost/remotedatabase?user=username&password=password");

  // Statements allow to issue SQL queries to the database
  statement = connect.createStatement();
  // Result set get the result of the SQL query
  resultSet = statement
      .executeQuery("select * from mytable limit 10");
  writeResultSet(resultSet);

} catch (Exception e) {
  throw e;
} finally {
  close();
}

ありがとう

4

2 に答える 2

1

こんにちは、この問題の解決策を見つけました。このエラーは、パスワードに & 記号が含まれているために発生します。jdbc 接続文字列で区切り記号として & 記号を使用します。

于 2012-12-23T05:08:43.717 に答える
0

正しいユーザー名とパスワードを提供したと仮定すると、ユーザーがサーバーにリモートでアクセスするための十分な権限を持っていないことを意味します。

サーバーへのアプリケーションにリモートでアクセスするために使用する新しいユーザーを作成して、次のことを試してください。

CREATE USER 'newUser'@'%' IDENTIFIED BY 'newPass123';
GRANT ALL PRIVILEGES ON *.* TO 'newUser'@'%' WITH GRANT OPTION;

ここで、 と を使用newUsernewPass123てリモート接続します。

于 2012-12-18T13:23:26.797 に答える