【问题标题】:Browser Says Cannot Connect to PostgreSQL Database浏览器说无法连接到 PostgreSQL 数据库
【发布时间】:2015-02-13 19:07:53
【问题描述】:

我正在使用 Amazon EC2 和 PostgreSQL/Apache 运行 Red Hat Linux 服务器,但遇到了一些问题。当我尝试在浏览器中访问我的应用时,我收到以下错误:

Unable to connect to the database
could not connect to server: Permission denied
    Is the server running on host "my-private-ip-address" and accepting
    TCP/IP connections on port 5432?

但是,我可以在 PuTTY 中使用以下命令访问我的数据库。我还可以在 pgAdmin 中连接到我的数据库。

psql -U username -h my-private-ip -d dbname

我使用herehere 找到的说明编辑了我的pg_hba.confpostgres.conf 文件,但不幸的是它们对我不起作用。我的入站安全组设置如下:

Type              Protocol     Port Range      Source
Custom TCP Rule   TCP          5432            Anywhere    0.0.0.0/0
HTTP              TCP          80              Anywhere    0.0.0.0/0
HTTPS             TCP          443             Anywhere    0.0.0.0/0

我错过了什么或做错了什么?感谢您的帮助。

编辑:我刚刚尝试禁用 SELinux,然后它能够​​连接到数据库,并且浏览器中没有错误。但我想保持 SELinux 开启以增强安全性。我猜这个问题与文件权限或防火墙设置有关。

Edit v2:我想我已经解决了,但如果这是正确的做法,我仍然希望得到一些人的意见。我找到了下面的命令here 让Apache和PostgresSQL相互连接:

setsebool -P httpd\_can\_network\_connect\_db on 

【问题讨论】:

  • 您的应用程序和数据库是否在同一台服务器上运行
  • @JoeLove 是的。我刚刚编辑了我的问题。我使用setsebool -P httpd\_can\_network\_connect\_db on 来允许 Apache 和 PostgreSQL 相互通信。
  • 您是否尝试过为您的应用配置使用 localhost 而不是实际 IP?根据您的服务器,您可以使用可能更快的 unix 套接字。
  • @JoeLove 是的,我确实尝试过localhost,但它导致了同样的错误。

标签: postgresql amazon-ec2 database-connection


【解决方案1】:

Apache 和 PostgreSQL 没有互相交谈。要启用它们之间的连接,请使用以下命令:

setsebool -P httpd\_can\_network\_connect\_db on

希望这对将来的某人有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-27
    • 2014-03-30
    • 2013-04-19
    • 1970-01-01
    • 2022-12-03
    • 2022-12-05
    • 2012-02-19
    • 2012-05-03
    • 1970-01-01
    相关资源
    最近更新 更多