我在使用postgres接受来自其他服务器的连接时遇到问题.这是我的设置:
原文链接:https://www.f2er.com/postgresql/192509.html> APP06(10.55.129.31):运行Postgres的服务器
> APP05(10.55.129.30):服务器尝试连接到Postgres
这是app06上的/var/lib/pgsql/data/pg_hba.conf文件:
# 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),但它应该至少有用.我想将10.55.129.30连接到10.44.129.31.第一个主机线应该是我所需要的.第三个主机线应允许从任何地方进行连接.
现在,我们在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
好吧……我认为……不是真正的系统管理员,我不能确切地说这意味着什么,但看起来像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并验证软件防火墙是否已关闭.
无论如何,我不是网络或系统管理员.我也不是一个postgres管理员.我很可能错过了一些简单,愚蠢的事情,但我不知道是什么.
我很确定这些机器上的端口5432在网络上是开放的.我尝试将Postgres端口切换到8999,我确定没有被阻止,但是我遇到了同样的问题.
知道我做错了什么吗?