リモートMySQLデータベースでJavaから「すべての特権」を設定しようとしています test
とユーザー test
。ここに私のコードのスニペットがあります:
Class.forName("com.mysql.jdbc.Driver");
Connection con = null;
con = (Connection) DriverManager.getConnection("jdbc:mysql://xx.xxx.xxx.xx:3306/?user=root&password=pswrd");
Statement st = con.createStatement();
int res = st.executeUpdate("GRANT ALL PRIVILEGES ON test.* TO "test"@"%" IDENTIFIED BY "12345";");
特別なものはありません。 rootユーザーからのすべてのクエリは正常に機能しますが、この特殊なケースではエラーが発生しています。
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user "root"@"%" to database "test"
私は何を間違えたのですか?
更新
ここでは 回答。したがって、問題は解決されませんでした...
回答:
回答№1は0との接続を確立してみてください
DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");
回答№2の場合は0
「pswrd」によって識別される「root @ yourHost」(特にyourHostから)がこのデータベースの権限を管理する権限を持っていることを確認してください。
回答№3の場合は0
この「テスト」@」のようなホストを追加してみてくださいあなたのホスト"