我的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
答案 0 :(得分:0)
此问题可能是由于:
如果服务器暂时出现问题
所有准备好的语句和结果集,请检查max_connections。
空闲连接超时超出NAT的NAT连接表
防火墙阻止了服务器的响应。
另一个原因是主机名不正确。
您确定数据库在端口8080上运行。
这也可能意味着服务器(或途中的某些路由器)存在(临时)问题。您可以尝试使用traceroute来确定是否正确。
检查: con = DriverManager.getConnection(“ jdbc:postgresql://19x.16x.1x.13x/MxxGS”,“用户名”,“密码”);
确认您的jdbc(jar)为postgres。
尝试例外,或数据库的池连接。