我目前正在尝试从lambda函数连接到亚马逊RDS。我面临的问题是我没有收到错误,但我没有设法获得连接,所以我不知道如何继续。我没有超时或参数错误,但对象“con”始终为空。
要做到这一点,我正在做以下事情:
Connection con = null;
String jdbcUrl2 = "jdbc:mysql://" + "connectionValueExample-zone.rds.amazonaws.com" + ":" + "3306" + "/" + "botdb" + "?user=" + "bot" + "&password=" + "PWvalueExample";
con = DriverManager.getConnection(jdbcUrl2);
每一步之后我都会用print()检查它是怎么回事。在我尝试建立连接之后,我尝试捕获它,因为虽然我现在没有得到异常,但是对象con永远不会停止为null,所以我不会建立连接。
catch (SQLException e) {
e.toString();
log.warn(e.toString());
}catch (Exception e) {
System.out.println("excepcion no capturada ");
e.toString();
}
第二个问题是万一我错过了一些东西,原来它不存在。
总而言之,代码看起来像:
@Override
public String handleRequest(Object input, Context context) {
context.getLogger().log("Input: " + input);
Connection con = null;
try {
String jdbcUrl2 = "jdbc:mysql://" + "value-zone.rds.amazonaws.com" + ":" + "3306" + "/" + "botdb" + "?user=" + "bot" + "&password=" + "PW";
con = DriverManager.getConnection(jdbcUrl2);
}
catch (SQLException e) {
e.toString();
log.warn(e.toString());
}catch (Exception e) {
System.out.println("excepcion no capturada ");
e.toString();
}
String status = null;
if (con != null) {
status = "conexion establecida";
System.out.println("connection stablished");
}else status = "connection failed";
return status;
}
编辑:
我现在正在更好地捕获异常并获得以下消息:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:通讯链接失败
成功发送到服务器的最后一个数据包是0毫秒前。驱动程序未收到来自服务器的任何数据包。
此时我不确定Strin jdbcURL是否未正确形成或者为什么连接失败。