Rod*_*igo 25 postgresql ssh port remote-access
我在运行Ubuntu Server 14.04的服务器上安装了PostgreSQL 9.3.
如果我通过终端ssh到服务器,我可以连接到psql.但是当我尝试配置pgAdmin III进行远程连接时,我得到:
服务器不侦听服务器不接受连接:连接库报告无法连接到服务器:连接被拒绝服务器是否在主机"172.24.3.147"上运行并接受端口5432上的TCP/IP连接?
当我在服务器上运行时,service postgresql status它给了我:
9.3/main (port 5432): online
Run Code Online (Sandbox Code Playgroud)
所以当然我在这里缺少一些重要的东西.
编辑
在netstat -na服务器上运行时,我得到(相关部分,我猜):
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp 0 0 172.24.3.147:22 172.24.3.240:61950 ESTABLISHED
tcp 0 0 172.24.3.147:22 172.24.3.240:60214 ESTABLISHED
Run Code Online (Sandbox Code Playgroud)
Jan*_*rek 35
您必须编辑postgresql.conf文件并使用'listen_addresses'更改行.
您可以在/etc/postgresql/9.3/main目录中找到此文件.
默认的Ubuntu配置只允许localhost(或127.0.0.1)接口,当每个PostgreSQL客户端在同一台计算机上与PostgreSQL服务器一起工作时,这足以使用.如果您想从其他计算机连接PostgreSQL服务器,您可以通过以下方式更改此配置行:
listen_addresses = '*'
Run Code Online (Sandbox Code Playgroud)
然后你也编辑了pg_hba.conf文件.在此文件中,您已设置了可以连接到此服务器的计算机以及可以使用的身份验证方法.通常你需要类似的线:
host all all 192.168.1.0/24 md5
Run Code Online (Sandbox Code Playgroud)
请阅读此文件中的评论......
编辑:
编辑postgresql.conf和pg_hba.conf之后你必须重启postgresql服务器.
EDIT2:Highlited配置文件.
小智 21
取消注释 postgresql.conf 中的 listen_addresses = '*'
这让我第二次被咬了,所以我认为可能值得一提。postgresql.conf 中的 listen_addresses = '*' 行默认被注释。请务必在更新后取消注释(删除开头的井号,#),否则,远程连接将继续被阻止。
PS: psql -U postgres -c 'SHOW config_file'- 定位 postgresql.conf 文件路径
rtf*_*liz 13
只是从已接受的答案中总结
如果像我这样的人忽略了必须编辑的文件名
就我而言,conf 文件位于
/etc/postgresql/14/main'
如果你输入cd /etc/postgresql/14/main
所以只需sudo nano 添加这两个文件名
listen_addresses = '*'
取消注释此行并将 localhost 更改为 *
host all all 0.0.0.0/0
将 127.0.0.1/32 更改为 0.0.0.0/0
最后不要忘记重新启动使用sudo service postgresql restart
我希望这个可以清除通知错误
小智 8
通过命令行连接 psql 时遇到同样的问题,并且 pgAdmin 未在 RDS 上与 AWS 连接。我确实将 RDS 设置为公开访问。我确保我的 ACL 和安全组完全开放并且仍然存在问题,因此我执行了以下操作:
sudo find . -name *.conf
然后sudo nano ./data/pg_hba.conf
添加到 pg_hba.conf 文件中的指令顶部host all all 0.0.0.0/0 md5
,pgAdmin 自动让我登录。
这也适用于
host all all md5没有任何 IP 地址的 pg_hba.conf 文件,并且这也适用于我的 IP 地址host all all <myip>/32 md5
附带说明一下,我的 RDS 位于我的默认 VPC 中。我的非默认 VPC 中有一个相同的 RDS 实例,其安全组、ACL 和安全组设置与我的默认 VPC 相同,但我无法让它工作。不知道为什么,但是,那是另一天的事情了。
您必须进行编辑pg_hba.conf才能接受网络内的所有请求
#TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
host all all ::1/128 md5
Run Code Online (Sandbox Code Playgroud)
在您的应用程序中,您可以使用此 IP 地址进行连接,如下例所示:-
postgresql://postgres:*****@192.168.1.101:5432/app
| 归档时间: |
|
| 查看次数: |
85016 次 |
| 最近记录: |