配置更改后重新加载PostgreSQL


16

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

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

我在Ubuntu 8.10上运行PostgreSQL 8.3。

Answers:


15

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

show data_directory;

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

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


17

尽管最初问这个问题的人暗示他正在运行Ubuntu 8.10,但使用更高版本的Ubuntu可能也会在这里绊倒。实际上,这可能也适用于8.10。我不知道,我没有任何8.10安装可尝试..

好吧,让我们切入正题。因此,控制服务的一种很酷的“新”方式是使用service命令。因此,您可以使用以下命令重新加载配置:

service postgresql-8.3 reload

当然,你需要有那么它是最有可能需要的东西,如前面加上指挥正确的权利sudosu -c root像这样:

sudo service postgresql-8.3 reload
要么
su -c root 'service postgresql-8.3 reload'

PS 在Ubuntu文档中建议 6.10发行版中已经做过与该新方法有关的事情,但是,如果我正确理解它,直到9.10才被更广泛地使用。


最近两年我已经升级了,所以我会尝试一下。感谢您保持冷静。
唐·柯比

它通常更好地对使用su -仅仅是在原地的su
X-尤里·

5

选项1:从命令行shell

su - postgres
/usr/bin/pg_ctl reload

选项2:使用SQL

SELECT pg_reload_conf();

使用任何一个选项都不会中断任何活动的查询或与数据库的连接,因此似乎可以应用这些更改。


3

这将达到目的:

kill -HUP $(head -1 $PGDATA/postmaster.pid)

2

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


1

我终于从本文中找到了一种对我有用的技术。该命令是:

sudo invoke-rc.d postgresql-8.3 reload

对于所推荐的技术,我仍然会感到满意。


1
如果您使用的是打包的PostgreSQL,则推荐使用打包脚本(如本示例对Ubuntu一样)。如果您是从源代码构建的,请使用pg_ctl。
Magnus Hagander



-1

ls /etc/init.d/看看postgresql有什么?

须藤/etc/init.d/postgresql重新加载

/etc/init.d/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.