web-dev-qa-db-ja.com

PostgreSQLポートを変更できません

CentOS6.2サーバーでPostgresql8.4をサービスとして実行しています。

port = 21444ファイルにlisten_addresses = '*'/var/lib/pgsql/data/postgresql.confを設定しました

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リスニングポートに影響を与えるかどうかはわかりません。

正しい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             

何か考えはありますか?

3
Jerec TheSith

多くの指示が示しているように、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という1行を追加することだけです。上記の場合、PGDATA =を追加する必要があります。ファイル名はサービス名と同じである必要があることに注意してください。わからない場合は、

chkconfig --list | grep post* 

見つけるために。

次に、次の方法でサーバーを再起動します。

Sudo service postgresql-9.1 restart.
4
simonxy

restartアクションを使用して再起動しますか、それともstoppingサービスを使用してから、startingもう一度実行しますか?

私はUbuntuを持っていますが、再起動することであなたと同じ動作を得ることができましたが、postgresqlを停止して開始すると、新しいポートでリッスンしました。したがって、停止してから開始し、新しいポートでリッスンを開始するかどうかを確認してください。

3
ThatGraemeGuy

/etc/init.d/postgresql-9.3PGPORT = 5432を見つけてYour Desired Port Numberに変更し、再起動します。それは私の問題を解決しました。

1
Xianlin