我对 pg_hba.conf 做了一些更改,我希望它们生效。我找到了几个人们说我可以告诉 PostgreSQL 重新加载的地方,但是列出了几种不同的技术,但它们都不适合我。
我找到的最权威的参考是 pg_ctl 命令,但我不确定我的 PGDATA 文件夹在哪里。我会继续寻找。
我在 Ubuntu 8.10 上运行 PostgreSQL 8.3。
我对 pg_hba.conf 做了一些更改,我希望它们生效。我找到了几个人们说我可以告诉 PostgreSQL 重新加载的地方,但是列出了几种不同的技术,但它们都不适合我。
我找到的最权威的参考是 pg_ctl 命令,但我不确定我的 PGDATA 文件夹在哪里。我会继续寻找。
我在 Ubuntu 8.10 上运行 PostgreSQL 8.3。
尽管最初提出这个问题的人暗示他正在运行 Ubuntu 8.10,但使用更高版本的 Ubuntu 也可能会在这里绊倒。这实际上可能也适用于 8.10。我不知道,我没有任何 8.10 安装可以尝试。
好的,让我们切入正题。所以控制服务的酷“新”方式是使用
service
命令。因此,您可以使用以下命令重新加载配置:自然,您需要拥有适当的权限,因此很可能需要在命令前添加类似
sudo
或su -c root
类似的内容:sudo service postgresql-8.3 reload
或者
su -c root 'service postgresql-8.3 reload'
PS在 Ubuntu 文档中建议,在 6.10 版本中已经完成了与这种新方法相关的一些事情,但是如果我理解正确的话,它直到 9.10 才被广泛使用。
您可以通过连接到 pg 并发出命令来检查您的 PGDATA 在哪里:
在 ubuntu 上,它通常是
/var/lib/postgresql/8.3/main/
.此外,您还可以:
/etc/init.d/postgresql-8.3 reload
选项 1:从命令行 shell
选项 2:使用 SQL
使用任一选项都不会中断任何活动的查询或与数据库的连接,因此可以无缝地应用这些更改。
这可以解决问题:
如果您不想重新启动服务器而只是向 postgreSQL 发送信号,只需键入命令:
pg_ctl reload
我终于从这篇文章中找到了一种适合我的技术。命令是:
对于推荐的技术是什么,我仍然很感激。
以下应该为您做:
在带有 systemd 的现代 linux disto 上,我不得不使用 systemctl 重新启动 postgres。这是在 CentOS7 上工作的内容:
首先找到当前 Postgres 服务的准确名称:
结果是:
然后使用该名称重新启动 Postgres:
我刚用过:
在 Debian/Ubuntu/等上。使用的版本
systemd
:或者
在其他系统上,这应该这样做: