【问题标题】:Problem to deploy Spring-Boot Application to Remote server with remote PostgreSQL Db使用远程 PostgreSQL Db 将 Spring-Boot 应用程序部署到远程服务器的问题
【发布时间】:2021-12-07 15:33:55
【问题描述】:

我有带有应用程序属性的 spring-boot 应用程序:

spring.jpa.database=postgresql
spring.jpa.show-sql=true

server.port=${PORT:8080}

spring.datasource.driverClassName=org.postgresql.Driver
spring.sql.init.platform=postgres
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.url=jdbc:postgresql://1**.1**.**.**6:****/dbname  # server address
spring.datasource.username=n******
spring.datasource.password=p********
spring.jpa.hibernate.ddl-auto=update

在我的本地计算机上我使用:

scp -P 1111 D:\user-home\test-0.0.1-SNAPSHOT.jar user@111.111.11.111:/home/user

当然还有

java -jar test-0.0.1-SNAPSHOT.jar

我有

org.postgresql.util.PSQLException: The connection attempt failed.
        at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:315) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:51) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.jdbc.PgConnection.<init>(PgConnection.java:223) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.Driver.makeConnection(Driver.java:465) ~[postgresql-42.2.22.jar!/:42.2.22]
        at org.postgresql.Driver.connect(Driver.java:264) ~[postgresql-42.2.22.jar!/:42.2.22]
        at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar!/:na]
        at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar!/:na]
        at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.4.32.Final.jar!/:5.4.32.Final]
        at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180) ~[hibernate-core-5.4.32.Final.jar!/:5.4.32.Final]

我在 pom 中的postres:

<dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.22</version>
        </dependency>

PASTEBIN 这是带有错误的完整控制台视图。没有一个解决方案有效。有人有解决这个问题的办法吗?

【问题讨论】:

    标签: java spring postgresql spring-boot hibernate


    【解决方案1】:

    看起来无论您从哪个服务器运行 jar 都无法访问该端口上的数据库服务器。您应该检查以确保双方的防火墙配置正确(JAR 服务器允许流量从数据库端口流出,数据库服务器允许流量从 JAR 服务器的 IP 地址从数据库端口进入)。

    您可以通过运行命令telnet &lt;database-ip&gt; &lt;port&gt; 使用 telnet 测试连接性,例如telnet 123.123.123.123 9876 来自 JAR 服务器(假设 telnet 可用)。如果能够建立连接,那么运行JAR应该能够再次运行并连接到数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 1970-01-01
      • 2019-01-10
      相关资源
      最近更新 更多