1

我正在尝试使用 jdbc 连接连接到远程 mysql 数据库。但我得到

java.sql.SQLException: 运行 java 类时拒绝用户访问此异常。但我可以使用 mysql 查询浏览器或 mysql 命令连接到该数据库。我用以前的版本替换了 jdbc 驱动程序,但我仍然收到此错误。我只有对远程数据库的只读访问权限。请帮我解决这个问题。

try { // 这将加载 MySQL 驱动程序,每个 DB 都有自己的驱动程序 Class.forName("com.mysql.jdbc.Driver"); //设置与数据库的连接

  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 回答