我的 Java Web 应用程序可以成功连接到托管在 Google Cloud sql 上的 Postgresql 数据库,并已部署到 Google App Engine。现在,每次它尝试访问同一个数据库时,我都会收到超时错误。我需要配置一些东西才能让他们正常通信吗? Web 应用程序和数据库都位于同一个项目中,所以我只是假设它们被允许相互通信
Caused by: org.postgresql.util.PSQLException: The connection attempt failed.
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:292)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:49)
at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:195)
at org.postgresql.Driver.makeConnection(Driver.java:454)
at org.postgresql.Driver.connect(Driver.java:256)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at weightwatchers2019.UsuarioDAO.autenticar(UsuarioDAO.java:79)
... 33 more
Caused by: java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.postgresql.core.PGStream.<init>(PGStream.java:70)
at org.postgresql.core.v3.ConnectionFactoryImpl.tryConnect(ConnectionFactoryImpl.java:91)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:192)
... 40 more
最佳答案
此问题可能是由以下原因引起的:
如果服务器暂时出现问题
所有准备好的语句和结果集,检查 max_connections。
NAT 的 NAT 连接表中的空闲连接超时
防火墙正在阻止来自服务器的响应。
另一个原因是主机名不正确。
您确定您的数据库正在端口 8080 上运行吗?
这也可能意味着服务器(或沿途的某些路由器)存在(临时)问题。您可以尝试跟踪路由来确定这是否属实。
检查: con=DriverManager.getConnection("jdbc:postgresql://19x.16x.1x.13x/MxxGS","用户名","密码");
确认您的 postgres jdbc(jar)。
尝试异常或数据库的池连接。
关于java - Cloud SQL 与 App Engine 之间的连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56730251/