配置 pg_hba.conf 文件以允许从其他服务器访问数据库

Eli*_*iar 16 postgresql centos

我在一台服务器上有一个 postgres 数据库,我需要从另一台服务器访问它。

我需要编辑 pg_hba.conf 文件,但现在知道编辑此文件的步骤是什么。服务器 Centos

我需要在文件中添加以下行

host    all         all         10.0.2.12         255.255.255.255   trust
Run Code Online (Sandbox Code Playgroud)

我把它定位在 var/lib/pgsql/data/

现在基本上我不确定这样做的正确步骤是什么

小智 16

首先备份给定的 pg_hba.conf

sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf
Run Code Online (Sandbox Code Playgroud)

这样,如果您搞砸了,您就可以准备好旧版本。tar 存档的一个很好的功能是保留权限和目录。所以当 pg_hba.conf 被破坏得面目全非时。你可以:

cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar
Run Code Online (Sandbox Code Playgroud)

这将从您之前创建的存档中恢复备份 pg_hba.conf。

至于实际插入行:

sudo su -c 'echo "host    all         all         10.0.2.12         255.255.255.255   trust" >> /var/lib/pgsql/data/pg_hba.conf'
Run Code Online (Sandbox Code Playgroud)

(注意:命令已编辑。谢谢 bortzmeyer!)

应该做。请注意,这只是将该行附加到 pg_hba.conf 中。如果您需要更改它,则必须使用实际的编辑器。喜欢vi。它的学习曲线可能有点陡峭,但是在您至少学习了基础知识之后,您应该在遇到的大多数 unix 环境中都非常安全。

现在我又回到了正轨,接下来您应该尝试重新启动 postgresql 数据库。在 Centos 机器上,我相信这是通过以下方式完成的:

sudo service postgresql restart
Run Code Online (Sandbox Code Playgroud)

或者您可以在不重新启动的情况下重新加载配置:

su - postgres
pg_ctl reload
Run Code Online (Sandbox Code Playgroud)

现在你应该可以从 10.0.2.12 访问你的 Centos-machines postrgresql 数据库


小智 13

不要忘记编辑 postgresql.conf 并更改/添加行

listen_addresses = '*'

Postgresql 默认监听本地主机