无法启用pgsql远程连接

时间:2019-01-14 14:55:51

标签: postgresql

最初的问题

我正在尝试将自己远程连接到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'),那么我仍然无法远程连接,但我什至无法本地连接。

问题

这里出了什么问题?是一个奇怪的错误,还是我只是错过了配置中的某些内容?

系统规格:

  • virtualBox上的Ubuntu 16.04.1
  • PostGreSQL 9.5

1 个答案:

答案 0 :(得分:0)

我只用一个'd'拼写了“ listen_addresses”。我花了4个小时的工作,因为...愚蠢而法国化...