【发布时间】:2023-03-09 11:09:01
【问题描述】:
我无法访问位于正在运行的 docker 容器中的任何数据库。 我总是有同样的错误:
FATAL: authentification par mot de passe échouée pour l'utilisateur « ro_user » pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf)
凭证是正确的,这在 pg_hba.conf 的内容下面:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all all all md5
相同的 PostgreSQL 图像正在为我的同事工作,是否需要添加任何配置才能允许连接到数据库?这与我的 IP 地址或操作系统编码有关吗?
【问题讨论】:
-
你的数据库只监听本地主机 (::1 / 127.0.0.1),所以不可能从外部连接到你的 docker 容器中的数据库服务器。该警告与您的问题无关。
-
我更改了 0.0.0.0/0 的值,但仍然有同样的错误。我应该设置什么?
-
我通过在我的 docker 容器上使用另一个“外部”端口而不是
5432解决了这个问题。例如5433。所以我的 docker 端口映射变成了5433:5432。不知道为什么默认的外部端口5432不起作用。
标签: postgresql docker encoding database-connection