我有点迷失为什么我的java应用程序无法连接到我的postgres数据库。我的目标是通过jdbc连接到postgres数据库。该应用程序将在docker容器内运行。
this.connection = `DriverManager.getConnection("jdbc:postgresql://<myip>:5432/databasename", "usr", "password");`
我得到了例外:
Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.
当我从桌面运行应用程序时,它按预期连接。当我从docker容器中运行它时,它会失败。
我今天下午刚刚安装了docker并且已经开始运行windows,所以我的设置状态就在运行之后。这是我的Dockerfile的内容:
FROM java:8
ADD VaultServer /
EXPOSE 3971
EXPOSE 3972
ENTRYPOINT ["java", "-jar", "VaultServer.jar"]
答案 0 :(得分:4)
在数据文件夹中有一个名为pg_hba.conf
的文件,您必须将其配置为接受连接。所以你的pg_hba.conf
文件应该有这样的一行
host all all YourDockerip/24 md5
。
之后配置postgresql.conf
文件。您必须将listen_addresses
更新为all,并确保通过删除#mark来取消注释该行。因此,listen_addresses
应该如下listen_addresses = '*'
。