无法连接到PostgreSQL服务器:无法连接到服务器:权限被拒绝。

9

警告:pg_connect():无法连接到PostgreSQL服务器:无法连接到服务器:权限被拒绝。服务器是否在主机“10.0.1.201”上运行,并在端口5432上接受TCP/IP连接?

当尝试从基于Linux的服务器连接到远程数据库时,我遇到了这个错误。

虽然我可以从本地主机连接到它。

有人能帮我解决这个问题吗?


权限被拒绝意味着你尝试登录的帐户无法通过TCP进行访问。 - Marc B
基本上,我在服务器上安装了一个 Web 应用程序,它需要连接到安装在远程服务器上的 Postgre 数据库,但是我遇到了这个错误,尽管我能够在 Windows 上连接,你能告诉我原因吗? - Manish
1
尽管用户名可能相同,但是username@localhost和username@linuxbox是完全不同的账户。 - Marc B
请问在这种情况下我能做什么? - Manish
我可以通过在PostgreSQL上创建一个新帐户来监听我的数据库服务器请求来解决这个问题吗? - Manish
在PostgreSQL中,用户帐户是规范化的,因此“用户名”是“用户名”,无论您是从本地主机还是其他地方连接。尽管“用户名”的访问可能会受到特定源地址或身份验证方法的限制,但只有一个帐户。 - araqnid
3个回答

38

我在同样的问题上尝试过一个可能的方案/解决方案,这里是:

service httpd stop
service postgresql stop

setsebool -P httpd_can_network_connect 1

service httpd start
service postgresql start

通过将 SELinux 布尔值设置为 1(真),我们基本上允许 HTTPD 通过网络连接到 PostgreSQL。


2

查看 postgresql.conf 文件中的 listen_addresses 设置。如果它设置为 localhost,则只能接受回环连接,而远程连接将获得“连接被拒绝”的错误。将 listen_addresses 设置为 "*" 可以在所有接口上进行侦听。


1

还需要检查防火墙是否允许数据包通过。 - Alvin K.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接