【问题标题】:Restart PostgreSQL without postgresql-server在没有 postgresql-server 的情况下重新启动 PostgreSQL
【发布时间】:2017-10-22 21:57:15
【问题描述】:

我在 CentOS 7 上,正在尝试解决“PG::ConnectionBad: FATAL: Peer authentication failed for user”错误。

所以我已经知道我应该更改 pg_hba.conf(与 md5 相同)并且我已经完成了。看来我得重启postgres了,但没我想的那么容易。

我尝试了“service postgresql restart”,结果是“无法重新启动 postgresql.service: Unit not found.

然后尝试安装 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?

【问题讨论】:

  • 尝试pg_ctl reload,是的 - hba_conf 更改需要重新加载,而不是重新启动

标签: postgresql centos7


【解决方案1】:

如果你使用标准的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 信号。如果您在一个活动的 系统,您需要向 postmaster 发送信号(使用 pg_ctl reload 或 kill -HUP) 使其重新读取文件。

【讨论】:

    猜你喜欢
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2021-11-03
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多