Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用密钥文件通过Java数据库连接连接到AWS数据库_Java_Mysql_Database_Jdbc_Amazon Ec2 - Fatal编程技术网

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

如何使用密钥文件通过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

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

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

例如,要连接到我的数据库,我还必须ssh到ec2实例中。其次,我的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的逐步过程