我目前有一个 Python 脚本,需要从 PostgreSQL 数据库获取一些数据。目前它工作正常,但我必须将脚本移动到另一台服务器B。PostgreSQL 数据库将保留在服务器上A。
B所以我的 Python 脚本需要从连接到server 的服务器访问 PostgreSQL 数据库A。
我尝试过添加host=servera.my.url.de但这给了我
could not connect to server: Connection refused
Is the server running on host "servera.my.url.de" (141.X.YZ.AB) and
accepting TCP/IP connections on port 5432?
Run Code Online (Sandbox Code Playgroud)
ping servera.my.url.de
PING servera.my.url.de (141.X.YZ.AB) 56(84) bytes of data.
64 bytes from XXXXX (141.X.YZ.AB): icmp_req=1 ttl=58 time=3.76 ms
64 bytes from XXXXX (141.X.YZ.AB): icmp_req=2 ttl=58 time=4.07 ms
64 bytes from XXXXX (141.X.YZ.AB): icmp_req=3 ttl=58 time=5.01 ms
^C
--- servera.my.url.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 3.768/4.287/5.014/0.529 ms
Run Code Online (Sandbox Code Playgroud)
所以服务器正在运行并且可以访问。
psql -h servera.my.url.de -p 5930 -c "select 1"
psql: could not connect to server: Connection refused
Is the server running on host "servera.my.url.de" (141.X.YZ.AB) and accepting
TCP/IP connections on port 5930?
Run Code Online (Sandbox Code Playgroud)
和
psql -h servera.my.url.de -p 5932 -U myusername -W -c "select 1"
Password for user myusername:
psql: could not connect to server: Connection refused
Is the server running on host "servera.my.url.de" (141.X.YZ.AB) and accepting
TCP/IP connections on port 5932?
Run Code Online (Sandbox Code Playgroud)
$ nmap -p 5000-6000 -sT servera.my.url.de
Starting Nmap 6.00 ( http://nmap.org ) at 2014-02-05 10:40 CET
Nmap scan report for servera.my.url.de (141.X.YZ.AB)
Host is up (0.054s latency).
rDNS record for 141.X.YZ.AB: XXXXXX
Not shown: 992 closed ports
PORT STATE SERVICE
5000/tcp filtered upnp
5025/tcp filtered unknown
5190/tcp filtered aol
5222/tcp filtered xmpp-client
5554/tcp filtered sgi-esphttp
5555/tcp filtered freeciv
5900/tcp filtered vnc
5901/tcp filtered vnc-1
6000/tcp filtered X11
Run Code Online (Sandbox Code Playgroud)
有趣的是 freeciv 正在运行......
当我提高端口范围时,我得到不同的结果:
$ nmap -p 1000-6000 -sT servera.my.url.de
Starting Nmap 6.00 ( http://nmap.org ) at 2014-02-05 10:40 CET
Nmap scan report for servera.my.url.de (141.X.YZ.AB)
Host is up (0.054s latency).
rDNS record for 141.X.YZ.AB: XXXXXX
Not shown: 4868 closed ports, 130 filtered ports
PORT STATE SERVICE
3000/tcp open ppp
4443/tcp open pharos
4444/tcp open krb524
Run Code Online (Sandbox Code Playgroud)
端口 5025 可能是 PostgreSQL 吗?
$ ps aux | grep postgres | grep -v 'postgres:'
postgres 28928 0.0 0.0 90124 820 ? s 2013 0:59 /usr/lib/postgresql91/bin/postgres -D /path/pgsql/data
[my command]
$ lsof -p 28928
[does not return anything, but does not quit]
Run Code Online (Sandbox Code Playgroud)
在 PostgreSQL 中我输入了SHOW port,但它什么也没返回。这是否意味着 PostgreSQL 没有监听任何端口?我怎样才能让它听?
这是一些设置吗/path/pgsql/data?(我现在无法访问此内容,但我可以询问。)
我该如何确定 postgreSql 正在侦听哪个端口(或者它是否正在侦听)?如何让它监听端口(或更改端口)?我在这台机器上没有 root 权限,但我可以在服务器上使用 SSH 登录A。
我确实看到了确定 PostgreSQL 的端口并尝试了其中的所有内容:
netstat需要root权限lsof不起作用(我不知道服务器出了什么问题......在我的机器上,它工作正常)pg_lsclusters好像没有安装如果您可以从原始计算机连接到 PostgreSQL,您可以看到它正在侦听哪个端口:
SHOW port;
Run Code Online (Sandbox Code Playgroud)
以及地址:
SHOW listen_addresses;
Run Code Online (Sandbox Code Playgroud)
我猜测listen_addresses是localhost,所以它不接受来自外部网络接口的 TCP/IP 连接。
要确认 PostgreSQL 在使用时正在监听什么:
netstat -ltnp
Run Code Online (Sandbox Code Playgroud)
另一种可能性是数据库主机上的网络防火墙不允许您连接。tcptraceroute从远程主机的端口,看看结果是什么。
| 归档时间: |
|
| 查看次数: |
8341 次 |
| 最近记录: |