Назад | Перейти на главную страницу

Невозможно изменить порт PostgreSQL

Я запускаю Postgresql 8.4 как службу на сервере CentOS 6.2.

Я установил port = 21444 и listen_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             

какая-нибудь мысль?

У меня такая же проблема при попытке установить номер порта в 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.

Вы перезапускаете его, используя начать сначала действие, или ты остановка сервис, а затем начало это снова?

У меня Ubuntu, но мне удалось добиться того же поведения, что и вы, перезапустив, но когда я остановился, а затем запустил postgresql, он прослушал новый порт. Так что попробуйте остановить его, а затем запустить и посмотреть, не начнет ли он прослушивать новый порт.

в /etc/init.d/postgresql-9.3 найти PGPORT = 5432 и измените его на Your Desired Port Number затем перезапустите. Это решило мою проблему.