无法更改 PostgreSQL 端口

无法更改 PostgreSQL 端口

我在 CentOS 6.2 服务器上运行 Postgresql 8.4 作为服务。

我设置 port = 21444listen_addresses = '*'/var/lib/pgsql/data/postgresql.conf文件中

我将 5432 改为 21444,postmaster.opts然后重新启动 postgres,但当我运行netstat -lntp postgresql 时,它仍然在端口 5432 上运行

tcp        0      0 0.0.0.0:5432                0.0.0.0:*                   LISTEN      20276/postmaster 

当我重新启动 postgresql 时,我收到写入错误警告/proc/self/oom_adj,但服务仍然启动。

我读到过在使用虚拟化服务器时可能会出现此错误,但我真的不知道这是否会对 postgresql 监听端口产生影响。

正确的 pgsql 配置文件已加载/var/lib/pgsql/data

[root@srv02 ~]# ps -ef | grep postgres
root      1358 22140  0 09:42 pts/0    00:00:00 grep postgres
postgres  9519     1  0 Mar16 ?        00:00:01 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data
postgres  9573  9519  0 Mar16 ?        00:00:00 postgres: logger process                          
postgres  9575  9519  0 Mar16 ?        00:00:05 postgres: writer process                          
postgres  9576  9519  0 Mar16 ?        00:00:03 postgres: wal writer process                      
postgres  9577  9519  0 Mar16 ?        00:00:01 postgres: autovacuum launcher process             
postgres  9578  9519  0 Mar16 ?        00:00:01 postgres: stats collector process             

任何想法?

答案1

当我尝试在 postgresql.conf 中设置端口号时,我遇到了同样的问题,正如许多说明所指出的那样。您的 ps -ef 内容为:

/usr/bin/postmaster -p 5432

这一行表明它从 5432 开始。

它由服务启动脚本运行,在我的情况下(CentOS6.3 + postgresql-9.1)它在这里:

/etc/rc.d/init.d/postgresql-9.1

有一行字:

# Override defaults from /etc/sysconfig/pgsql if file is present
[ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME}

所以我所做的就是转到 /etc/sysconfig/pgsql,创建一个新文件 postgresql-9.1,在其中添加一行:PGPORT=8100。在上述情况下,您应该添加 PGDATA=。注意,文件名应该与您的服务名称相同,如果您不知道,请使用

chkconfig --list | grep post* 

找出答案。

然后通过以下方式重新启动服务器:

sudo service postgresql-9.1 restart.

答案2

您是否正在使用重新开始行动,或者你停止然后服务开始又来了?

我有 Ubuntu,但我通过重新启动设法获得了与您相同的行为,但当我停止并启动 postgresql 时,它会监听新端口。因此,请尝试停止它然后启动它,看看它是否开始监听新端口。

答案3

/etc/init.d/postgresql-9.3find中将PGPORT = 5432其更改为Your Desired Port Number然后重新启动。它解决了我的问题。

相关内容