在 Digital Ocean 上我可以连接到 Postgresql:
psql -d my_db -U my_name
它要求我输入密码,然后我成功登录。但是从我的本地计算机我无法:
psql -d my_db -U my_name -h x.x.x.x
什么都没发生。这是我的 /etc/postgresql/9.4/main/pg_hba.conf
# Database administrative login by Unix domain socket
local all postgres peer
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 md5
#host replication postgres ::1/128 md5
答案1
检查并确保 postregsql 正在监听您的接口 IP(而不仅仅是 127.0.0.1)。
ss -ltn
如果不是,请将 修改listen_addresses
为 * 或您想要的 IP。这些设置应该位于postgresql.conf
文件中,通常位于 postgresql 数据目录中。
https://www.postgresql.org/docs/9.4/static/runtime-config-connection.html