【问题标题】:How to connect to AWS Database with Java Database Connection using a key file如何使用密钥文件通过 Java 数据库连接连接到 AWS 数据库
【发布时间】:2019-04-15 18:54:44
【问题描述】:

我有亚马逊 ec2 和 rds 的实例,它们都在虚拟私有云中运行。 rds 包含一个 mysql 数据库。我可以通过输入数据库信息(主机、端口号、数据库、用户)以及 ec2 实例的 ssh 详细信息(主机、端口号、用户、密钥文件)来使用 mysql 工作台连接到 rds 数据库。

我现在正在编写一个需要访问数据库的 java 程序。我很困惑如何使用 JDBC(java 数据库连接)库来做到这一点。网上有关于使用 JDBC 的示例,但它们似乎并没有解决我面临的某些问题。

例如,要连接到我的数据库,我还必须通过 ssh 连接到 ec2 实例。其次,我的 ec2 实例使用密钥文件而不是密码,我还没有看到任何关于如何在代码中实现此功能的示例。

我非常感谢与此问题有关的任何建议或代码示例。如果我需要澄清任何事情,请告诉我。谢谢

【问题讨论】:

    标签: java mysql database jdbc amazon-ec2


    【解决方案1】:

    如果您可以连接 MySQL Workbench,那么您几乎已经完成了所有设置。这意味着您的安全组已打开,您已准备好远程连接。您不需要通过 SSH 连接到您的 EC2 服务器。您只需要您的公共 ip 或 DNS (host)、您使用的端口以及您的数据库用户名和密码。然后,您只需要执行以下代码即可。

    Class.forName("com.mysql.jdbc.Driver");  
    Connection conn = DriverManager.getConnection(  
    "jdbc:mysql://{public dns or ip}:{port}/{database name}","{username}","{password}");
    Statement stmt = conn.createStatement();  
    ResultSet rs = stmt.executeQuery("select * from table");
    

    这应该足以将您连接到您的数据库。当然,将{} 更改为各自的值。如果您需要更多信息,可以查看此page

    【讨论】:

      【解决方案2】:

      如果您在作为 VPC 一部分的 EC2 实例上运行 Java 程序,并且安全组设置允许在 RDS 端口上进行连接,那么您需要做的就是使用 RDS 服务器配置(RDS IP地址、端口号、数据库用户和数据库密码)。

      如果您的 Java 程序在 VPC 外部的服务器上运行,您将需要管理 VPC 网络和安全组以允许 VPC 外部的远程连接形式。

      您可以参考 AWS 文档了解在 VPC 中管理 RDS 的分步流程。

      https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.Scenarios.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-05
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 1970-01-01
        • 2014-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多