В моем /var/lib/pgsql9/data/postgresql.conf
я добавил port = 55434
и если я начну Postgres с /usr/bin/pg_ctl start -D /var/lib/pgsql9/data/
как postgres
пользователь, то Postgres прослушивает правильный порт lsof -i -nP
:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postgres 12127 postgres 3u IPv4 49394 0t0 TCP *:55434 (LISTEN)
postgres 12127 postgres 4u IPv6 49395 0t0 TCP *:55434 (LISTEN)
postgres 12127 postgres 10u IPv4 49402 0t0 UDP 127.0.0.1:57562->127.0.0.1:57562
postgres 12130 postgres 10u IPv4 49402 0t0 UDP 127.0.0.1:57562->127.0.0.1:57562
postgres 12131 postgres 10u IPv4 49402 0t0 UDP 127.0.0.1:57562->127.0.0.1:57562
postgres 12132 postgres 10u IPv4 49402 0t0 UDP 127.0.0.1:57562->127.0.0.1:57562
postgres 12133 postgres 10u IPv4 49402 0t0 UDP 127.0.0.1:57562->127.0.0.1:57562
postgres 12134 postgres 10u IPv4 49402 0t0 UDP 127.0.0.1:57562->127.0.0.1:57562
Но если я попробую service postgresql start
так как root
, затем он прослушивает значение по умолчанию 5432
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
postmaste 12256 postgres 3u IPv4 49690 0t0 TCP *:5432 (LISTEN)
postmaste 12256 postgres 4u IPv6 49691 0t0 TCP *:5432 (LISTEN)
postmaste 12256 postgres 10u IPv4 49698 0t0 UDP 127.0.0.1:42404->127.0.0.1:42404
postmaste 12260 postgres 10u IPv4 49698 0t0 UDP 127.0.0.1:42404->127.0.0.1:42404
postmaste 12261 postgres 10u IPv4 49698 0t0 UDP 127.0.0.1:42404->127.0.0.1:42404
postmaste 12262 postgres 10u IPv4 49698 0t0 UDP 127.0.0.1:42404->127.0.0.1:42404
postmaste 12263 postgres 10u IPv4 49698 0t0 UDP 127.0.0.1:42404->127.0.0.1:42404
postmaste 12264 postgres 10u IPv4 49698 0t0 UDP 127.0.0.1:42404->127.0.0.1:42404
Я заметил разницу в COMMAND
(postmaste
против postgres
) но я действительно не знаю, почему работает service
не читает postgresql.conf
что я редактировал. Я бы предположил root
мог прочитать это. Я бы хотел использовать service
так как я могу легко настроить Postgres для запуска при загрузке с chkconfig postgresql on
, но если мне придется использовать pg_ctrl
тогда я думаю, мне придется добавить команду запуска в /etc/rc.local
(что-нибудь не так?).
Это на t1.micro
экземпляр 64-битного Amazon Linux AMI 2014.03 (последний на момент написания). И бег psql (PostgreSQL) 9.2.7
(устанавливается через yum
).
Я не очень хорошо разбираюсь в Linux, поэтому приветствую любую помощь и советы! Спасибо!
На самом деле оказалось, что я не читал postgres.conf
достаточно осторожно. Он читал (в комментариях):
#port = 5432 # (change requires restart)
# Note: In RHEL/Fedora installations, you can't set the port number here;
# adjust it in the service file instead.
Итак, я обнаружил, что файл для редактирования был /etc/rc.d/init.d/postgresql
и я изменил настройку порта в следующих строках:
# Set defaults for configuration variables
PGENGINE=/usr/bin
PGPORT=55434
PGDATA=/var/lib/pgsql9/data
PGLOG=/var/lib/pgsql9/pgstartup.log
# Value to set as postmaster process's oom_adj
PG_OOM_ADJ=-17
Тогда я просто сделал service postgresql restart
и он наконец начал слушать мои 55434
порт.