Я запускаю 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
затем перезапустите. Это решило мою проблему.