如何启用远程连接以使用 PostgreSQL?
How do I enable a remote connection in order to use PostgreSQL?
我在 Azure 上有两个虚拟机,我们称它们为 test1 和 test2。
postgresql-server 已安装并且 运行ning 在 test1(服务器,postgres 用户所在的位置)上,但我希望能够在 test2(目标).
到目前为止,我已经编辑了 pg_hba.conf,使目标的 IP 地址出现在它的主机列表中:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all XX.XXX.XX.XXX/32 trust
其中XX.XXX.XX.XXX是我目标机器的publicIP地址,test2.
然后,我编辑了 postgresql.conf 文件,以监听所有地址而不仅仅是本地主机:
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432
我在主机服务器上重新加载服务器以获取更改:
pg_ctl -D /path/to/data/ -l logfile reload
据我研究,现在我应该可以参加 test2,并且 运行 类似:
psql -h 127.0.0.1 -U postgres -p 5432
但每当我这样做时,我都会得到:
-bash: psql: command not found
这是怎么回事???此外,与 Hive 数据库(已设置)的测试连接一直失败,因为它无法连接到数据库。
正如 Islingre 评论的那样:
在目标 (test2) 上安装 postgresql,允许我 运行:
psql -h test1ip -p 5432
成功了。
我在 Azure 上有两个虚拟机,我们称它们为 test1 和 test2。
postgresql-server 已安装并且 运行ning 在 test1(服务器,postgres 用户所在的位置)上,但我希望能够在 test2(目标).
到目前为止,我已经编辑了 pg_hba.conf,使目标的 IP 地址出现在它的主机列表中:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host all all XX.XXX.XX.XXX/32 trust
其中XX.XXX.XX.XXX是我目标机器的publicIP地址,test2.
然后,我编辑了 postgresql.conf 文件,以监听所有地址而不仅仅是本地主机:
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432
我在主机服务器上重新加载服务器以获取更改:
pg_ctl -D /path/to/data/ -l logfile reload
据我研究,现在我应该可以参加 test2,并且 运行 类似:
psql -h 127.0.0.1 -U postgres -p 5432
但每当我这样做时,我都会得到:
-bash: psql: command not found
这是怎么回事???此外,与 Hive 数据库(已设置)的测试连接一直失败,因为它无法连接到数据库。
正如 Islingre 评论的那样:
在目标 (test2) 上安装 postgresql,允许我 运行:
psql -h test1ip -p 5432
成功了。