我有两个都在虚拟私有云中运行的Amazon ec2和rds实例。 rds包含一个mysql数据库。通过输入数据库信息(主机,端口号,数据库,用户)以及ec2实例的ssh详细信息(主机,端口号,用户,密钥文件),我可以使用mysql workbench连接到rds数据库。
我现在正在编写一个需要访问数据库的Java程序。我对如何使用JDBC(java数据库连接)库可以做到这一点感到困惑。网上有一些有关JDBC使用的示例,但是它们似乎并没有解决我所面临的某些问题。
例如,要连接到我的数据库,我还必须将ssh插入ec2实例。其次,我的ec2实例使用密钥文件而不是密码,并且我还没有看到如何在代码中实现此示例的任何示例。
我真的很感谢与该问题有关的任何建议或代码示例。请让我知道是否需要澄清任何事情。谢谢
答案 0 :(得分:0)
如果可以与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");
这足以将您连接到数据库。当然,用各自的值更改{}
。如果您需要更多信息,可以查看此page。
答案 1 :(得分:0)
如果您在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