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

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

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

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

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

host    all         all         10.0.2.12         255.255.255.255   trust

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

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

答案1

首先备份给定的 pg_hba.conf

sudo tar cvf /var/tmp/mybackup_pg_hba_conf.tar /var/lib/pgsql/data/pg_hba.conf

这样,如果您搞砸了,就可以使用旧版本。tar 存档的一个不错的功能是保留权限和目录。因此,当 pg_hba.conf 损坏到无法识别时。您可以:

cd /
sudo tar xvf /var/tmp/mybackup_pg_hba_conf.tar

这将从您之前创建的档案中恢复备份 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'

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

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

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

sudo service postgresql restart

或者您可以直接重新加载配置而无需重新启动:

su - postgres
pg_ctl reload

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

答案2

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

listen_addresses = '*'

Postgresql 默认监听本地主机

相关内容