配置更改后重新加载 PostgreSQL

配置更改后重新加载 PostgreSQL

我对 pg_hba.conf 做了一些更改,希望它们生效。我发现有好几个地方的人说我可以告诉 PostgreSQL 重新加载,但列出了几种不同的技术,但对我来说都不起作用。

我发现最权威的参考是 pg_ctl 命令,但我不确定我的 PGDATA 文件夹在哪里。我会继续寻找。

我在 Ubuntu 8.10 上运行 PostgreSQL 8.3。

答案1

您可以通过连接到 pg 并发出命令来检查 PGDATA 的位置:

show data_directory;

在 ubuntu 上,通常是/var/lib/postgresql/8.3/main/

此外,您还可以:/etc/init.d/postgresql-8.3 reload

答案2

虽然最初提问的人暗示许多人都在使用 Ubuntu 8.10,但使用更高版本的 Ubuntu 也可能会遇到问题。事实上,这可能也适用于 8.10。我不知道,我没有任何 8.10 安装可以尝试。

好的,让我们直奔主题。控制服务的酷炫“新”方法是使用命令service。因此,您可以使用以下命令重新加载配置:

service postgresql-8.3 reload

当然,您需要拥有适当的权限,因此很可能需要在命令前面添加类似sudo这样的内容su -c root

sudo service postgresql-8.3 reload
或者
su -c root 'service postgresql-8.3 reload'

PS建议在 Ubuntu 文档中与此新方法相关的一些事情早在 6.10 版本发布时就已经完成了,但是,如果我理解正确的话,直到 9.10 版本它才得到更普遍的使用。

答案3

选项 1:从命令行 shell

su - postgres
/usr/bin/pg_ctl reload

选项 2:使用 SQL

SELECT pg_reload_conf();

使用任一选项都不会中断任何活动查询或数据库连接,从而可以无缝地应用这些更改。

答案4

如果你不想重新启动服务器而只想向 postgreSQL 发送信号,只需输入命令:
pg_ctl reload

相关内容