我对 PostgreSQL 很陌生,所以问题可能很简单。所以。我已经在 Fedora 29 上安装了 PostgreSQL 11 和 pgAdmin 4。我可以通过终端或 AzureDataStudio 连接到数据库,但是当我尝试连接 pgAdmin 时,我得到了这个错误:
无法连接到服务器:
无法连接到服务器:权限被拒绝 服务器是否在主机“127.0.0.1”上运行并接受端口 5432 上的 TCP/IP 连接?
我正在尝试最后三天可以找到的任何东西,但没有任何帮助。这是我的配置:
# I set listen_address in postgresql.conf:
listen_addresses = '*'
# and these are my pg_hba.conf hosts:
local all all md5
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
host all all ::1/128 md5
host all all ::/0 md5
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
这些配置有问题吗?或者我应该知道通过 pgAdmin 连接的任何提示吗?提前致谢。
更新:
我应该提到我可以通过终端连接到数据库:
psql -h 127.0.0.1 -U postgres
通过 AzureDataStudio 连接不需要任何指定数据。有一个表格是这样的:
填写表格并提交连接按钮将连接到数据库。此外,我可以通过 JetBrains 的 DataGrip 使用相同的表单和数据连接到数据库。
更新 2:
我在运行 Fedora 30 的本地机器上同时运行 PostgreSQL 和 pgAdmin。
更新 3:
这是我的完整软件信息:
// OS
Fedora 30 64-bit
// PostgreSQL
PostgreSQL 11.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.0.1 20190312 (Red Hat 9.0.1-0.10), 64-bit
// pgAdmin
Version 4.8
Copyright Copyright (C) 2013 - 2019, The pgAdmin Development Team
Python Version 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
Flask Version 1.0.2
Application Mode Server
更新 3:
运行sudo netstat -nlp | grep 5432
命令给出了这个结果;
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN 16954/postmaster
tcp6 0 0 :::5432 :::* LISTEN 16954/postmaster
unix 2 [ ACC ] STREAM LISTENING 952579 16954/postmaster /var/run/postgresql/.s.PGSQL.5432
更新 4:解决方案!
最后,在Jan Garaj 的回答的帮助下,我找到了解决方案。首先,我安装了SELinux Troubleshooter应用程序:
sudo dnf install setroubleshoot
然后我启动了疑难解答。接下来,我尝试通过pgAdmin4连接到数据库。故障排除程序给了我 2 个错误,其中包含运行这些命令的建议解决方案:
sudo setsebool -P httpd_can_network_connect 1
sudo setsebool -P httpd_can_network_connect_db 1