java - 使用远程 PostgreSQL Db 将 Spring-Boot 应用程序部署到远程服务器的问题
问题描述
我有带有应用程序属性的 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这是带有错误的完整控制台视图。没有一个解决方案有效。有没有人有这个问题的解决方案?
解决方案
看起来无论您从哪个服务器运行 jar 都无法访问该端口上的数据库服务器。您应该检查以确保双方的防火墙配置正确(JAR 服务器允许从数据库端口传出流量,而数据库服务器允许从 JAR 服务器的 IP 地址从数据库端口传入流量)。
您可以使用 telnet 测试连接性,telnet <database-ip> <port>
例如telnet 123.123.123.123 9876
从 JAR 服务器运行命令(假设 telnet 可用)。如果能够建立连接,那么运行 JAR 应该能够再次运行并连接到数据库。
推荐阅读
- css - Tailwind CSS 更改占位符选项的文本颜色
- python - GitHub 上的 OCR 代码仓库和他们向您收费的网站有什么区别?
- javascript - 在 onClick 执行完成后调用函数
- json - DataPower:使用 XSLT 将 Json 响应映射到 xml
- java - Spring Boot JPA 多对多删除级联
- python - get_highest_resolution 函数在 pytube 中不起作用
- html - 图像背景无法适应电子邮件模板中正文内容容器的高度?
- html - 如何在不包含cdn js的简单html文件中使用sass,并将html文件通过邮件发送给某人
- git - go get 不适用于引用自定义 gitconfig 的 .gitconfig
- xamarin - Xamarin WebView 身份验证