У меня есть MySQL работает в ec2, например, когда я пытаюсь использовать это MySQL, я могу сделать следующее:Как установить соединение jdbc с Mysql в экземпляре AWS?
dilin-mbp:~ dilin$ ssh -i /Users/dilin/Documents/SelfProject/MM_AWS_MainKey.pem [email protected]
Last login: Tue Feb 24 05:07:47 2015 from c-73-189-116-135.hsd1.ca.comcast.net
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2014.09-release-notes/
[[email protected] ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1969
Server version: 5.5.42 MySQL Community Server (GPL)
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select * from .....;
То есть, мне нужно сначала использовать файл PEM для доступа к серверу, а затем я может использовать mysql.
Здесь возникает вопрос, в JDBC, как я могу настроить файл pem, чтобы заставить себя подключиться?
Моя наивная реализация:
String url = "jdbc:mysql://54.69.23.214:3306/";
String dbName = "snapsono";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "pwd";
SnapList snapList = new SnapList();
try {
Driver mysqlDriver = (Driver) Class.forName(driver).newInstance();
DriverManager.registerDriver(mysqlDriver);
logger.info("about to get access");
Connection conn = DriverManager.getConnection(url + dbName,
userName, password);
logger.info("get Initialized!!!");
Statement st = conn.createStatement();
ResultSet res = st.executeQuery("SELECT * FROM event");
while (res.next()) {
int id = res.getInt("userid");
String idUrl = res.getString("url");
SnapProfile profile = new SnapProfile(id,idUrl);
snapList.getList().add(profile);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
В настоящее время реализации, по бревну, я не могу установить соединение, и сервер не ответ. Я предполагаю, что это потому, что я не установил файл pem, может ли кто-нибудь помочь мне пропустить настройку?
[INFO] Starting scanner at interval of 40 seconds.
Feb 24, 2015 8:51:16 PM snap.sono.demo.impl.GeneralImpl getDbHello
INFO: >>> enter getDbHello
Feb 24, 2015 8:51:16 PM snap.sono.demo.impl.GeneralImpl getDbHello
INFO: about to get access
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
Благодаря
Я знаю, что, может быть, порт но в группе безопасности я предоставляю доступ с моего текущего ip, и, как вы можете видеть из моего сообщения, я могу получить доступ из ip, возможно, мне следует использовать ssh для локальной переадресации портов. –
Я полагаю, вы предоставили SSH с вашего IP-адреса, поэтому telnet вашего EC2 на порт 3306 из вашей системы и посмотреть, можно ли подключиться. брандмауэр вашей системы может быть виновником. – Raja