获取java.sql.SQLException:连接到远程mysql数据库时访问被拒绝用户异常

时间:2012-12-18 13:16:19

标签: mysql jdbc

我试图使用jdbc连接连接到远程mysql数据库。但我得到了

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

  

尝试{         //这将加载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();
}

由于

2 个答案:

答案 0 :(得分:1)

您好我找到了解决这个问题的方法。此错误是因为密码包含&符号。我们用& jdbc连接字符串中的符号作为分隔符。

答案 1 :(得分:0)

假设您提供了正确的用户名和密码,这意味着用户没有足够的权限远程访问服务器。

通过创建用于远程访问服务器的新用户来尝试以下操作

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

现在,使用newUsernewPass123远程连接。