在我的系统中,/var/lib/pgsql9/data/postgresql.conf
我添加了,如果我以用户身份port = 55434
启动 Postgres,那么 Postgres 就会监听正确的端口:/usr/bin/pg_ctl start -D /var/lib/pgsql9/data/
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
as 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,所以任何帮助和提示都非常感谢!谢谢!
答案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
端口了。