PostgreSQL 11配置不允许pgAdmin4连接

时间:2019-05-12 19:01:18

标签: postgresql pgadmin-4 postgresql-11 pg-hba.conf postgresql.conf

我是PostgreSQL的新手,所以问题可能很简单。所以。 我已经在Fedora 29上安装了PostgreSQL 11和pgAdmin4。我可以通过终端或AzureDataStudio连接到数据库,但是当我尝试与pgAdmin连接时,出现此错误:

  

无法连接到服务器:

     

无法连接到服务器:权限被拒绝服务器正在运行   主机“ 127.0.0.1”上并在端口5432上接受TCP / IP连接?

我正在尝试可以在过去三天内找到的任何方法,但是没有任何帮助。这是我的配置:

html,body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: auto;
  font-family: 'Libre Baskerville', serif;
}

body {
  display: grid;
  width: 100vw;
  height: 100vh;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(12, 1fr);
  grid-gap: 10px 10px;
}

header {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(2, 1fr);
  grid-row: 1/ 3;
  grid-column: 1/ 13;
  grid-gap: 10px 10px;
  background-color: grey;
}

.type {
  display: grid;
  grid-row: 1/ 2;
  grid-column: 1/ 8;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  align-self: center;
  background-color: lightcoral;
  min-height: 0;
}

.nav {
  display: grid;
  grid-row: 2/ 3;
  grid-column: 1/ 8;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: 1fr;
  align-self: center;
  background-color: crimson;
}

a {
   color: black;
   text-decoration: none;
   padding: 10px;
 }

img {
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
}

.content {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(12, 1fr);
  grid-column: 1/ 13;
  grid-row: 3 / 13;
  grid-gap: 10px 10px;
 }

 .library {
   grid-column: 4/ 10;
   grid-row: 4 / 10;
   margin:auto;
 }

这些配置是否有问题?还是我应该知道通过pgAdmin连接的任何技巧?提前致谢。

更新:

我应该提到我可以通过终端连接到数据库:

# 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

通过AzureDataStudio连接不需要任何指定的数据。就像这样的形式:

enter image description here

填写表格并提交“连接”按钮将连接到数据库。另外,我可以通过JetBrains的DataGrip连接到具有相同格式和数据的数据库。

3 个答案:

答案 0 :(得分:1)

检查SELinux审核日志-https://fedoraproject.org/wiki/SELinux_FAQ#How_do_I_find_out_whether_SELinux_is_denying_access_for_any_software.3F

我在我的测试CentOS 7系统上看到拒绝:

type=AVC msg=audit(1560101981.565:1942): avc:  denied  { name_connect } for  pid=63140 comm="httpd" dest=5432 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:postgresql_port_t:s0 tclass=tcp_socket permissive=0
type=SYSCALL msg=audit(1560101981.565:1942): arch=c000003e syscall=42 success=no exit=-13 a0=15 a1=7f741c06dfe0 a2=10 a3=7f742f9147b8 items=0 ppid=63139 pid=63140 auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)

我想,您的Fedora中也会遇到类似的问题-您需要调整已使用的SELinux策略。

答案 1 :(得分:0)

在centos 7上

# setsebool -P httpd_can_network_connect_db 1

你去了

答案 2 :(得分:-1)

假设应提及您可以通过终端连接到数据库: 尝试使用root管理员帐户运行 pgAdmin4

用于进一步验证您的安装和配置

复制pgAdmin 4示例配置。

cp /etc/httpd/conf.d/pgadmin4.conf.sample /etc/httpd/conf.d/pgadmin4.conf

mkdir /var/log/pgadmin4/
mkdir /var/lib/pgadmin4/

创建/编辑config_local.py文件。

vi /usr/lib/python2.7/site-packages/pgadmin4-web/config_local.py

添加以下设置。

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/storage'

更改目录的权限,以便Apache可以向其中写入数据。

chown -R apache:apache /var/lib/pgadmin4/*
chown -R apache:apache /var/log/pgadmin4/*

运行以下命令为pgAdmin 4 Web界面创建一个用户帐户。

python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py

pgAdmin4随服务器和桌面部署一起提供,在这里我们假设桌面 如果仍然遇到问题,请共享