无法更改PostgreSQL端口

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

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

我在postmaster.opts更改了5432到21444并重新启动了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监听端口。

正确的pgsqlconfiguration文件在/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 

任何想法?

在尝试在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,创build一个新的文件postgresql-9.1,在那里添加一行:PGPORT = 8100。 在上面的情况下,你应该添加PGDATA =。 请注意,文件名应该与您的服务名称相同,如果您不知道,请使用

 chkconfig --list | grep post* 

找出。

然后通过以下方式重启服务

 sudo service postgresql-9.1 restart. 

您是使用重新启动操作重新启动它,还是停止服务,然后重新启动

我有Ubuntu,但通过重新启动,我设法得到了和你一样的行为,但是当我停下来然后启动postgresql时,它在新的端口上进行了监听。 所以试着停下来然后启动它,看看它是否开始在新的端口上收听。

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