Postgresql 没有使用服务命令监听正确的端口

Postgresql 没有使用服务命令监听正确的端口

在我的系统中,/var/lib/pgsql9/data/postgresql.conf我添加了,如果我以用户身份port = 55434启动 Postgres,那么 Postgres 就会监听正确的端口:/usr/bin/pg_ctl start -D /var/lib/pgsql9/data/postgreslsof -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 startas 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.micro64 位 Amazon Linux AMI 2014.03 实例(撰写本文时为最新版本)。并且正在运行psql (PostgreSQL) 9.2.7(通过 安装yum)。

我不太擅长使用 Linux,所以任何帮助和提示都非常感谢!谢谢!

答案1

事实上,我读得不够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端口了。

相关内容