我在一台服务器上有一个 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 默认监听本地主机