configuration更改后重新加载PostgreSQL

我已经对pg_hba.conf进行了一些更改,我希望它们能够起作用。 我发现有几个地方,人们说我可以告诉PostgreSQL重新加载,但有几种不同的技术列出,并没有一个为我工作。

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

我在Ubuntu 8.10上运行PostgreSQL 8.3。

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

show data_directory; 

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

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

虽然原来问这个问题的人暗示他运行Ubuntu 8.10的人很多,但使用后来的Ubuntu版本也可能会在这里绊倒。 事实上,这也可能与8.10一起工作。 我不知道,我没有任何8.10安装与尝试..

好的,让我们切入点。 因此,控制服务的酷“新”方式是使用service命令。 所以你可以用下面的命令重新加载configuration:

 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才会被使用到更广泛的用途。

选项1:从命令行shell中

 su - postgres /usr/bin/pg_ctl reload 

选项2:使用SQL

 SELECT pg_reload_conf(); 

使用这两个选项不会中断任何活动的查询或与数据库的连接,因此可以毫不费力地应用这些更改。

这将做的伎俩:

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

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

我终于从这篇文章中find了一种适合我的技术。 该命令是:

 sudo invoke-rc.d postgresql-8.3 reload 

我仍然赞赏对推荐技术的反馈。

下面应该为你做:

 sudo /etc/init.d/postgresql-8.3 reload