我正在尝试将自己远程连接到pgsql数据库,但是当我这样做时
psql -h 192.168.0.121 -p 5432 my_pgsql_admin_username -d my_database
(192.168.0.121是托管pgsql数据库的计算机的地址),出现典型错误:
psql: could not connect do server: Connection refused
Is the server running on host "192.168.0.121" and accepting
TCP/IP connections on port 5432 ?
我的/etc/postgresql/9.5/main/postgresql.conf
已经包含一个listen_adresses = '*'
。
我的/etc/postgresql/9.5/main/pg_hba.conf
包含以下规则:
local all postgres peer
local all all peer
host all all 127.0.0.1/32 md5
host all all 192.168.0.0/24 md5
host all all ::1/128 md5
一个sudo iptables -L
给了我:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere 192.168.0.121 tcp spts:1024:65535 dpt:postgresql state NEW,ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 192.168.0.121 anywhere tcp spt:postgresql dpts:1024:65535 state ESTABLISHED
我已经重新启动了postgresql(sudo service postgresql restart
)和iptables(/etc/init.d/networking restart
)。我还尝试在md5
中将trust
替换为pg_hba.conf
,而没有看到任何更改。
在我的postgresql.conf
中,如果未设置listen_adresses
,则无法进行远程连接,但是至少可以本地连接(使用简单的psql
),但是如果我将listen_adresses
变量设置为任意值(可能是'*'
或'localhost'
),那么我仍然无法远程连接,但我什至无法本地连接。
这里出了什么问题?是一个奇怪的错误,还是我只是错过了配置中的某些内容?
答案 0 :(得分:0)
我只用一个'd'拼写了“ listen_addresses”。我花了4个小时的工作,因为...愚蠢而法国化...