我有一个数据库服务器(192.168.1.50)运行postgres。我已经创建了一个名为“testdb”的数据库和一个用户“testuser”,密码为“testuserpw”。
在本地,我可以使用以下命令连接到db:
psql -d testdb -U testuser
当我从另一台主机(192.168.1.60)发出命令时:
psql -h 192.168.1.50 -d testdb -U testuser
我有错误:
psql: could not connect to server: Connection refused
Is the server running on host "192.168.1.50" and accepting
TCP/IP connections on port 5432?
有什么想法吗?
7条答案
按热度按时间wmomyfyw1#
检查
postgresql.conf
文件中的listen_addresses
设置。许多发行版将其默认为127.0.0.1,即只监听来自localhost的连接。它应该设置为'*'
以侦听所有接口上的连接。如果仍然有问题,可以使用
lsof
查看postgres进程正在监听哪些网络套接字。lnvxswe22#
在Ubuntu上,我注意到远程访问在某个时候停止工作(目前使用9.1.9)。原因是,postgres不再使用
-i
开关[1]启动,因此无论您为listen_addresses配置什么,它都将被忽略。幸运的是,在
/etc/environment
中添加以下行可以解决注销并再次登录(或重新启动)后的问题:[2]查看更多选项。请注意,将此添加到
/etc/postgresql/9.1/main/environment
对我不起作用。现在,当执行
nmap ip-of-my-remote-server
时,我终于又得到了这个:好耶!
[1][http://www.postgresql.org/docs/9.1/static/runtime-config-short.html](http://www.postgresql.org/docs/9.1/static/runtime-config-short.html)
[2][http://www.postgresql.org/docs/9.1/static/libpq-envars.html](http://www.postgresql.org/docs/9.1/static/libpq-envars.html)
fkvaft9z3#
防火墙允许连接通过吗?或者,检查
pg_hba.conf
是否允许从localhost以外的地址连接。3ks5zfa04#
我遇到了和你一样的问题,我的问题来源是防火墙设置。如果您使用的是Ubuntu,请打印您的防火墙状态:
sudo ufw status verbose
它可能看起来像这样:
传入连接的默认规则是“deny”,因此您需要指定“allow“ed端口。
型号:
sudo ufw allow 5432/tcp
参考:https://www.vultr.com/docs/how-to-configure-ufw-firewall-on-ubuntu-14-04
n3schb8v5#
postgresql.conf
中的listen_address
函数并不是让postgres监听非本地IP地址的唯一方法。如果从pg_ctl启动postgres,请使用选项“-o -h *”,否则请将
"-h" "*"
添加到postgres命令行,例如。当然,
/pg/data
必须更改为您当前的数据路径。这在实验时尤其有用。
0x6upsns6#
连接被拒绝(0x 0000274 D/10061)我已在此处修复,并使用:
打开终端并键入:
编辑“listen_adresses”,它应该设置为“*”
在此之后,将其放置在终端上:
tnkciper7#
我在Ubuntu 22.04,PostgreSQL 16安装时也遇到了同样的问题,并且卡住了很长一段时间。除了与 *. conf文件有关的其他答案外,我还必须使用以下命令配置防火墙:
我在这个网页上找到了这个:https://www.project-open.com/en/howto-postgresql-port-secure-remote-access
我希望它能对你有帮助,并祝你(和其他有关的人)“好运”!