我有一个问题让postgres接受来自我的其他服务器的连接。 这是我的设置:
这是我的/var/lib/pgsql/data/pg_hba.conf文件在app06上 :
# TYPE DATABASE USER CIDR-ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 10.55.129.30/32 trust host all all 10.55.129.31/32 trust host all all 0.0.0.0/0 trust # IPv6 local connections: host all all ::1/128 trust
这不完全是我想要的(我想使用LDAP),但它至less应该工作。 我想连接10.55.129.30到10.44.129.31。 第一条主线应该是我所需要的。 第三条host线应该允许从任何地方连接。
现在,我们在app06上启动Postgres
$ /etc/init.d/postgres start $ /etc/init.d/postgres status pg_ctl: server is running (PID: 30091) /usr/bin/postgres "-D" "/var/lib/pgsql/data"
看起来不错…
我们来看看Netstat:
$ netstat -nlp | grep 5432 tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 30091/postmaster unix 2 [ ACC ] STREAM LISTENING 16490154 30091/postmaster /tmp/.s.PGSQL.5432
好吧…我想…不是一个真正的系统pipe理员,我不能确切地说这是什么意思,但它看起来像PID 30091(进程postmaster)端口5432打开。
让我们看看是否有什么东西在端口5432上监听
$ telnet localhost 5432 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'.
好吧,5432端口是开放的,接受连接。
现在,我们将去APP05,看看我们是否可以连接…
我已经尝试从app05运行psql没有成功。 我可以跟app06交谈吗?
$ ping app06 PING app06 (10.55.129.31) 56(84) bytes of data. 64 bytes from app06 (10.55.129.31): icmp_seq=1 ttl=64 time=0.901 ms 64 bytes from app06 (10.55.129.31): icmp_seq=2 ttl=64 time=0.230 ms --- app06 ping statistics --- 2 packets transmitted, 6 received, 0% packet loss, time 5001ms
好的,我可以从app05与app06交谈。 让我们来看看我能否连接到Postgres的端口:
$ telnet app06 5432 Trying 10.55.129.31... telnet: connect to address 10.55.129.31: Connection refused telnet: Unable to connect to remote host: Connection refused
我无法连接到端口5432
我运行/usr/sbin/lokkit并validation软件防火墙已closures。
我不是一个networking或系统pipe理员。 我也不是一个postgrespipe理员。 我很可能错过了一些简单而愚蠢的事情,但我不知道是什么。
我很确定这些机器上的端口5432在networking上是开放的。 我试图将Postgres端口切换到8999,我确定没有被阻止,但我得到同样的问题。
任何想法我做错了什么?
在文本编辑器中打开postgresql.conf并查找listen_addresses关键字。 将其设置为*
重新启动pgsql。
只是仅供参考…一个令人难以置信的愚蠢的事情,但我做了忘记删除configuration文件中的“listen_addresses”行中的前导“ # ”,当我去改变它。 (是的…因此,该线路仍然是一个评论! Duh-hh-hhh。)
答案很简单,你的postgress安装只能绑定到127.0.0.1接口
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 30091/postmaster
您需要重新configuration它并将其绑定到您的networking接口/ IP地址,您将可以访问