使用 pgAdmin 4 访问远程 PostgreSQL 服务器

使用 pgAdmin 4 访问远程 PostgreSQL 服务器

抱歉,帖子太长了。我想尽可能详细地说明,以便更容易发现问题。

所以我按照 PostgreSQL 下载上的说明进行操作并开始运行在我的 CentOS 7 VM 的端口 5432 上运行的 PostgreSQL 服务器。

## Install the repository RPM
sudo yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

## Install the client packages
sudo yum install postgresql11

## Install the server packages
sudo yum install postgresql11-server

## Initialise the database and enable automatic start
sudo /usr/pgsql-11/bin/postgresql-11-setup initdb
sudo systemctl enable postgresql-11
sudo systemctl start postgresql-11

完成上述步骤后,我执行了以下步骤以使 postgres 服务器可远程访问。

# Open DB port
sudo firewall-cmd --zone=public --add-port=5432/tcp --permanent # success

sudo firewall-cmd --reload # success

# Added "listen_addresses = '*'" in the file below
nano /var/lib/pgsql/11/data/postgresql.conf

# and wrote the following lines...
host    all             all             ::0/0                   md5
host    all             all             0.0.0.0/0               md5
# at the end of the `pg_hba.conf` file. 

在继续之前,我只想看看我是否可以以其他用户的身份登录 psql。因此,我使用我的个人帐户登录并执行此操作psql -h 127.0.0.1 -U postgres,结果如下:

psql:严重错误:用户“postgres”的身份认证失败

这位好心人说,虚拟机用户名postgres登录密码和数据库角色postgres密码是两个不同的东西(关联),因此我执行以下操作来更改 postgres 角色的密码

# bash
su - postgres    
psql    
# postgreSQL
ALTER USER postgres PASSWORD 'new_password'
\q
# bash
exit
psql -h 127.0.0.1 -U postgres # this works now

现在我觉得自己已经准备好了。

我在本地机器上启动 pgAdmin 4,然后请执行下列操作并点击保存。我收到以下错误消息:

无法连接到服务器:
无法连接到服务器:连接超时(0x0000274C/10060)
服务器是否在主机“XX.XXX.XX.XX”上运行并
在端口 5432 上接受 TCP/IP 连接?

所以我去仔细检查端口是否正在监听。

sudo netstat -nlt | grep 5432 
# Output
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN
tcp6       0      0 :::5432                 :::*                    LISTEN

作为替代方案,我使用 建立一个 ssh 隧道,然后ssh -N -L localhost:5432:localhost:5432 [email protected]在 pgAdmin 中执行此操作并点击保存。我收到以下错误消息:

无法连接到服务器:
严重错误:用户“postgres”的身份认证失败

我很困惑..我不明白为什么我会收到此消息,因为我以为当我为该角色分配密码时这个问题就解决了postgres..

我已经阅读了很多与此问题相关的 SOF 帖子,并尝试使用该pg_hba.conf文件建立连接,但没有成功......

我已经努力了好几个小时了。请有人帮帮我。

相关内容