gpt4 book ai didi

java - 部署到云后无法访问 MySQL 数据库 - CommunicationsException

转载 作者:行者123 更新时间:2023-11-29 21:11:25 26 4
gpt4 key购买 nike

我通过 App Engine Java Rest API 项目连接到 Google Cloud SQL,以在云上检索和存储数据。我可以通过本地主机成功与服务器通信,但在发布后,我收到此错误:

Trying to Run Query: 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.

虽然有很多解决方案,但我很遗憾地说它们都不起作用。

这是我的连接字符串:

String url = null;
try {
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://APP_ENGINE_ID:SQL_INSTANCE_NAME/DB_NAME?user=root";
} else {
Class.forName("com.mysql.jdbc.Driver");
url = "jdbc:mysql://MY_IPV4_ADDRESS:3306/DB_NAME?user=root";
}
} catch (Exception e) {
e.printStackTrace();
}

仅在发布后,我通过 Rest API 收到此错误。基本上,通过本地主机工作,但不能在云上远程工作。

我调试并指出了崩溃的地方。在我尝试与服务器建立连接并执行查询后发生这种情况:

try {
//THIS is where it crashes
conn = DriverManager.getConnection(url);
try {
String query = "SELECT * FROM UserTable";
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
while (rs.next())
{
//Code
}
st.close();
} finally {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}

以前有人遇到过这个问题吗?

最佳答案

就像 Herman、Igor 和 Vadim 指出的那样,这只是我的 PROJECT_ID:INSTANCE_ID 中的一个错误:

代码错误:

if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://APP_ENGINE_ID:SQL_INSTANCE_NAME/DB_NAME?user=root";
}

我一直在使用我的应用引擎 ID,而不是我应该使用的项目 ID

更正的代码:

if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
Class.forName("com.mysql.jdbc.GoogleDriver");
url = "jdbc:google:mysql://PROJECT_ID:SQL_INSTANCE_NAME/DB_NAME?user=root";
}

关于java - 部署到云后无法访问 MySQL 数据库 - CommunicationsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36334765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com