如何使用密钥文件通过Java数据库连接连接到AWS数据库
我有AmazonEC2和rds的实例,它们都运行在虚拟私有云中。rds包含一个mysql数据库。通过输入数据库信息(主机、端口、数据库、用户)以及ec2实例的ssh详细信息(主机、端口、用户、密钥文件),我可以通过mysql workbench连接到rds数据库 我现在正在编写一个需要访问数据库的java程序。对于如何使用JDBC(java数据库连接)库实现这一点,我感到困惑。网上有一些关于JDBC使用的例子,但是它们似乎没有解决我面临的某些问题 例如,要连接到我的数据库,我还必须ssh到ec2实例中。其次,我的ec2实例使用一个密钥文件而不是密码,我还没有看到如何在代码中实现这一点的任何示例如何使用密钥文件通过Java数据库连接连接到AWS数据库,java,mysql,database,jdbc,amazon-ec2,Java,Mysql,Database,Jdbc,Amazon Ec2,我有AmazonEC2和rds的实例,它们都运行在虚拟私有云中。rds包含一个mysql数据库。通过输入数据库信息(主机、端口、数据库、用户)以及ec2实例的ssh详细信息(主机、端口、用户、密钥文件),我可以通过mysql workbench连接到rds数据库 我现在正在编写一个需要访问数据库的java程序。对于如何使用JDBC(java数据库连接)库实现这一点,我感到困惑。网上有一些关于JDBC使用的例子,但是它们似乎没有解决我面临的某些问题 例如,要连接到我的数据库,我还必须ssh到ec2
我将非常感谢任何关于这个问题的建议或代码示例。如果我需要澄清什么,请告诉我。谢谢如果您可以连接MySQL Workbench,那么您几乎可以完成所有设置。这意味着您的安全组已打开,您已准备好远程连接。您不需要SSH到EC2服务器中。您只需要您的公共ip或DNS(主机)、您正在使用的端口以及您的数据库用户名和密码。然后,您只需要执行以下代码
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");
这应该足以将您连接到数据库。当然,用它们各自的值更改
{}
。如果您需要更多信息,可以查看此信息。如果您在作为VPC一部分的EC2实例上运行Java程序,并且安全组设置允许在RDS端口上进行连接,则只需使用RDS服务器配置(RDS IP地址、端口号、DB用户和DB密码)创建一个新的连接类
如果Java程序在VPC之外的服务器上运行,则需要管理VPC网络和安全组,以允许在VPC之外进行远程连接
您可以参考AWS文档,了解VPC中管理RDS的逐步过程