我正在尝试连接到远程 psql 数据库。在我添加带有客户端 IP 地址的 pg_hba.conf 条目之前,我收到了一条错误消息:
xdev@xdevbox:~$ psql -U postgres testdb -h 10.1.1.47
psql: FATAL: no pg_hba.conf entry for host "10.201.50.71", user "postgres", database "testdb", SSL off
我使用信任设置添加了客户端的 IP。我还将服务器上postgres.conf中的监听地址更改为监听“*”。然后我使用 /etc/init.d/postgresql restart 命令重新启动了数据库服务器。
现在,当我尝试连接时,我收到以下错误消息:
psql: could not connect to server: Connection refused
Is the server running on host "10.1.1.47" and accepting
TCP/IP connections on port 5432?
在 postgresql.conf 中,端口设置为 5432。我不确定还要检查什么。
谢谢
您必须配置以下两个文件
pg_hba.conf
postgresql.conf
您必须检查端口 5432 是否打开:http ://www.yougetsignal.com/tools/open-ports/
如果不是,则将规则添加到您的
iptables
:0/0:如果你想让任何人访问它。您可以将其更改为特定的 IP 地址或 IP 地址范围。
我不同意使用
如果您的数据库暴露在互联网上。在我的项目中,postrgres 在云中,它是从后端使用的。我只需要直接连接到数据库进行维护。我从公共 IP 连接到数据库,比如 1.2.3.4。在这种情况下,正确的条目是:
请注意 IP 地址后的“/0”。如果没有“/0”,您将收到“连接被拒绝错误”。
最好限制对数据库的访问,在白名单中指定数据库名称、数据库用户和 IP 地址。除非您处于开发环境中,否则切勿使用“ALL”。
再见!