Как подключиться к базе данных AWS через Java Database Connection, используя файл ключа - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть экземпляры amazon ec2 и rds, которые работают в виртуальном частном облаке. RDS содержит базу данных MySQL. Я могу подключиться к базе данных rds с помощью mysql workbench, введя информацию о базе данных (хост, порт #, база данных, пользователь), а также данные ssh для экземпляра ec2 (хост, порт #, пользователь, файл ключа).

Я сейчас пишу Java-программу, которая должна получить доступ к базе данных. Я не совсем понимаю, как это можно сделать с помощью библиотеки JDBC (соединение с базой данных Java). В Интернете есть примеры использования JDBC, однако они, похоже, не решают некоторые проблемы, с которыми я сталкиваюсь.

Например, чтобы подключиться к моей базе данных, я также должен подключиться к экземпляру ec2 по ssh. Во-вторых, мой экземпляр ec2 использует файл ключа, а не пароль, и я не видел примеров того, как реализовать это в коде.

Буду очень признателен за любые советы или примеры кода, относящиеся к этой проблеме. Пожалуйста, дайте мне знать, если мне нужно что-то уточнить. Спасибо

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Если вы запускаете Java-программу на экземпляре EC2, который является частью VPC, а настройки группы безопасности разрешают подключение через порт RDS, все, что вам нужно сделать, это создать новый класс подключения с конфигурацией сервера RDS (RDS IP).адрес, номер порта, пользователь БД и пароль БД).

Если ваша Java-программа работает на сервере вне VPC, вам нужно будет управлять сетью и группой безопасности VPC, чтобы разрешить форму удаленного соединения вне VPC.

Вы можете обратиться к документации AWS.для пошагового процесса управления RDS в VPC.

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

0 голосов
/ 13 ноября 2018

Если вы можете соединиться с 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");

Этого должно быть достаточно, чтобы подключить вас к вашей БД. Конечно, измените {} на соответствующее значение. Если вам нужна дополнительная информация, вы можете проверить эту страницу .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...