[英]Connecting java to MYSQL database in an amazon server
我正在尝试将我的Java代码与Amazon RDS中的 mysql DB连接起来,我正在使用以下代码:
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(
"jdbc:mysql://HOST:port_number/DB_name","DB_username", "DB_pass");
st = connection.createStatement();
rs = st.executeQuery("SELECT * FROM table name WHERE id = 1");
} catch (Exception e) {
System.out.println("DB error : " + e);
}
我在运行它时遇到此错误:
DB error : java.sql.SQLException: Unable to connect to any hosts due to exception: java.net.SocketException: java.net.SocketException: Permission denied: connect
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.SocketException: Permission denied: connect
STACKTRACE:
java.net.SocketException: java.net.SocketException: Permission denied: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
at com.mysql.jdbc.Connection.<init>(Connection.java:452)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at DB.<init>(DB.java:15)
at subgroup.main(subgroup.java:72)
** END NESTED EXCEPTION **
有任何想法吗 !!
您需要从尝试读取数据库的位置授予对计算机的访问权限。
另外,您应该使用命令提示符授予对IP的访问权限。
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/authorizing-access-to-an-instance.html
我改写您的命令,因为您将connection
变量设置为drivermanager,但在声明中使用con
? 连接内部的字符串用实际值替换,例如
connect = DriverManager.getConnection("jdbc:mysql://localhost:3306", "<your DBUsername>", "<your DB Password>");
下次不要复制粘贴,了解代码如何工作
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(
"jdbc:mysql://HOST:port_number/DB_name","DB_username", "DB_pass");
st = connection.createStatement();
rs = st.executeQuery("SELECT * FROM table name WHERE id = 1");
} catch (Exception e) {
System.out.println("DB error : " + e);
}
就我而言,问题是我正在使用从仿真器到本地主机的连接。 如果您使用模拟器将localhost用作本地主机,请不要在连接字符串中使用localhost,127.0.0.1,而应使用:
10.0.2.2
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.