如何将 spring 引导 Web 应用程序连接到 postgresql 数据库

How to connect spring boot web app to postgresql database

我正在开发一个 Spring 引导项目,我试图将我的服务器连接到 postgresql 数据库。 当我 运行 我的 IDE 程序(在我的 windows OS 上)它正在工作但是当我制作一个 jar 文件并 运行 它在我的 ubuntu 托管我的数据库的服务器虚拟机不工作。

org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

我已经检查了我的防火墙规则,但仍然没有成功。

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我做了一些研究,听说要修改 postgresql 的配置文件,但它仍然不起作用,我不知道问题出在哪里。

我在 postgresql.conf 上修改的行下方:

listen_addresses = '*'          # what IP address(es) to listen on;
ssl = on

对于 pg_hba.conf:

local   all             postgres                                peer
local   all             kapitax                                trust
# TYPE  DATABASE        USER            ADDRESS                 METHOD
#host   all             kapitax        *                       password
#host   all             all             0.0.0.0/0               md5
# "local" is for Unix domain socket connections only
local   all             all             *                       trust
# IPv4 local connections:
host    all             all             *                       password
# IPv6 local connections:
host    all             all             ::1/128                 password
# Allow replication connections from localhost, by a user with the
# replication privilege.
local   replication     all                                     peer
host    replication     all             *                       md5
host    replication     all             ::1/128                 md5

问题可能来自 applcation.properties 代码 ?

spring.datasource.url= jdbc:postgresql://localhost:5432/kapitax
spring.datasource.username=kapitax
spring.datasource.password=kapitax
spring.jpa.hibernate.ddl-auto=create-drop
server.port=8090

#host   all             all             0.0.0.0/0               md5

应该像这样启用:

host   all             all             0.0.0.0/0               md5

使用 0.0.0.0/0 您将侦听所有 IPv4 地址。更改此配置后,请确保重新加载服务器设置或重新启动数据库服务器。可以在以下答案中找到更详细的解释:How to configure PostgreSQL to accept all incoming connections