【问题标题】:JDBC Connection from Ubuntu 11.10 to Amazon EC2 BitNami LampStack instance - Access Denied (using password: YES)从 Ubuntu 11.10 到 Amazon EC2 BitNami LampStack 实例的 JDBC 连接 - 拒绝访问(使用密码:是)
【发布时间】:2012-02-03 18:36:11
【问题描述】:
  • 我的本地计算机正在运行 Ubuntu 11.10。我使用 Eclipse Indigo 作为我的 IDE。
  • 我的服务器是在 Amazon EC2 上运行的 BitNami LampStack (Ubuntu 10)。
  • 我在 .Net 和 Java 方面都比较有经验,但是 JDBC、MySQL 管理、Linux 和 EC2 的初学者

我已经成功打开了3306端口,MySQL Workbench可以正常连接。用户 'root'@'%' 拥有所有权限,并且没有默认数据库。

在解决了找不到合适的驱动程序的问题后,我终于将 mysql-connector-java-5.0.8-bin.jar 直接放在我的 Java 项目中。我意识到这可能不是最理想的,但它似乎有效。我做到了(经过大量谷歌搜索),因为我不知道如何在 Ubuntu 上正确安装它,并且担心通过 ssh 到 EC2 会更难,所以我认为它可以编译到项目中。一个链接将不胜感激,因为它也会很好地解决这个问题。

以下是引发异常的代码。这是在 main 的顶部;什么都不先执行。

我已经尝试过使用和不使用 Class.forName(...) 并且还使用 java.util.Properties 作为凭据。相同的凭据在同一台机器上的 MySQL Workbench 中工作,我已经复制+粘贴了几次以确保没有拼写错误。

为了安全起见,我更改了密码和地址,但保留了格式。明确地说,这里的密码是“Abcdef1234#”。据我所知,# 可能是罪魁祸首。

Class.forName("com.mysql.jdbc.Driver");
String CONNECTION_STRING = "jdbc:mysql://ec2-87-212-16-34.compute-1.amazonaws.com?user=root&password=Abcdef1234#";
Connection cn = DriverManager.getConnection(CONNECTION_STRING);

然后抛出:

Exception in thread "main" java.sql.SQLException: Access denied for user 'root'@'ppp-72-135-32-239.dsl.hgyuct.swbell.net' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:885)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3421)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1247)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2775)
at com.mysql.jdbc.Connection.<init>(Connection.java:1555)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285)
at java.sql.DriverManager.getConnection(DriverManager.java:620)
at java.sql.DriverManager.getConnection(DriverManager.java:222)
at Program.main(Program.java:5)

如果我应该提供更多信息,请告诉我。

【问题讨论】:

  • 这是您真实的服务器详细信息吗?如果是这样,请在这篇文章中用假值替换那些。 (特殊字符除外)
  • 感谢您的想法。是的,我已经更改了所有的 IP 地址和密码。
  • 注意:我刚刚发现 MySQL Workbench 的管理数据导出功能在我的本地计算机上不起作用,但是,当我从我的端口 7777 构建一个 ssh 中继器到 EC2 端口 3306 然后告诉MySQL 管理员从我的本地机器指向 localhost:7777。

标签: mysql jdbc amazon-ec2


【解决方案1】:

问题是'root'@'localhost' 密码与'root'@'%' 密码不同,所以从 JDBC 连接使用了我认为是旧密码。

【讨论】:

    猜你喜欢
    • 2016-08-15
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多