如何通过ssh更改postgresql配置

时间:2015-03-10 11:31:42

标签: php postgresql ssh sed

我在php中有一个项目,我通过ssh连接到服务器,我的任务是更改postgresql.conf参数。 我试过这个:

psql -Upgadmin -p 11935 -d postgres -c array_nulls=off
ERROR:  syntax error at or near "array_nulls"
LINE 1: array_nulls=off
        ^

或者我应该使用sed更改postgresql.conf中的设置,我应该使用哪个命令?

1 个答案:

答案 0 :(得分:1)

使用psql更改成功的任何服务器设置只会持续与会话一样长。要使更改保持不变,您必须使用您喜欢的文本编辑器(vim,emacs等)或实用程序(sed,awk等)编辑postgresql.conf。以下所有内容假定您具有编辑postgresql.conf的适当权限。

你的第一份工作就是找到它。不同的Linux发行版将它存储在不同的地方。在Ubuntu中,它位于

/etc/postgresql/9.4/main
                ^^^

请注意版本号。当然,每个版本的PostgreSQL都不同。如果我想更改设置,我会在将文件置于版本控制之后执行

$ sudoedit /etc/postgresql/9.4/main/postgresql.conf
[sudo] password for mike: 

然后找到设置并进行更改。以下是postgresql.conf的相关部分。

#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#array_nulls = on

我将设置更改为

array_nulls = off    # array_nulls = on

这种更改通常需要重新加载或重新启动PostgreSQL dbms。