我在 CentOS 7 上,我正在尝试解决'PG::ConnectionBad: 致命:对等身份验证失败的用户'错误。
所以我已经想出我应该改变pg_hba.conf(对等到md5),我已经做到了。看来我必须重新启动 postgres,但这并不像我想象的那么容易。
我尝试了"service postgresqlrestart",结果是"无法重新启动 postgresql.service:找不到单元"。
然后尝试安装 posgresql-server。有:
oct 23 01:16:15 serverct1 pg_ctl[3280]: HINT: Is another postmaster already running on port 5432? If ...try.
oct 23 01:16:15 serverct1 pg_ctl[3280]: WARNING: could not create listen socket for "localhost"
oct 23 01:16:15 serverct1 pg_ctl[3280]: FATAL: could not create any TCP/IP sockets
oct 23 01:16:16 serverct1 pg_ctl[3280]: pg_ctl: could not start server
oct 23 01:16:16 serverct1 systemd[1]: postgresql.service: control process exited, code=exited status=1
oct 23 01:16:16 serverct1 systemd[1]: Failed to start PostgreSQL database server.
关于5432端口使用情况:
postgres 5432/tcp postgresql # POSTGRES
postgres 5432/udp postgresql # POSTGRES
所以我很好奇:
1) postgresql和 postgresql-server 是分开工作的吗?
2)是否可以在没有postgresql-server的情况下重新启动posgresql?
3) 如果没有 - 如何免费获取端口 5432 以运行 postgresql-server?
如果您使用标准 postgres pg_ctl
,您可以避免serverct1
的麻烦,例如:
pg_ctl reload
或者如果需要pg_ctl reload -D $PGDATA
您无需重新启动 postgres 即可应用pg_hba更改:https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
pg_hba.conf 文件在启动时和主服务器时读取 进程接收 SIGHUP 信号。如果在活动 系统,您需要向邮局局长发出信号(使用pg_ctl重新加载或 kill -HUP) 使其重新读取文件。