如何使用密钥文件通过java数据库连接连接到aws数据库

tvokkenx  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(361)

我有amazonec2和rds的示例,它们都运行在虚拟私有云中。rds包含一个mysql数据库。通过输入数据库信息(主机、端口#、数据库、用户)以及ec2示例的ssh详细信息(主机、端口#、用户、密钥文件),我可以用mysql workbench连接到rds数据库。
我现在正在编写一个需要访问数据库的java程序。对于如何使用jdbc(java数据库连接)库实现这一点,我感到困惑。网上有一些关于使用jdbc的例子,但是它们似乎没有解决我所面临的某些问题。
例如,要连接到我的数据库,我还必须ssh到ec2示例中。其次,我的ec2示例使用一个密钥文件而不是密码,我还没有看到任何如何在代码中实现这一点的例子。
我真的很感激任何建议或代码的例子有关这个问题。如果我需要澄清什么,请告诉我。谢谢

sqyvllje

sqyvllje1#

如果你可以连接mysql工作台,你几乎可以把一切都设置好。这意味着您的安全组已打开,您可以远程连接。您不需要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");

这应该足以将您连接到数据库。当然,换个颜色 {} 它们各自的价值。如果您需要更多信息,可以查看此页。

goucqfw6

goucqfw62#

如果您在vpc的ec2示例上运行java程序,并且安全组设置允许在rds端口上进行连接,则只需使用rds服务器配置(rds ip地址、端口号、db用户和db密码)创建一个新的连接类。
如果您的java程序在vpc之外的服务器上运行,您将需要管理vpc网络和安全组,以允许vpc之外的远程连接形式。
您可以参考aws文档,了解vpc中管理rds的逐步过程。
https://docs.aws.amazon.com/amazonrds/latest/userguide/user_vpc.scenarios.html

相关问题