我在 CentOS 7.3 环境下安装了 PostgreSQL 10.1。
服务已启动(postmaster.pid
文件存在于 下/var/lib/pgsql/10/data
),但我需要重新加载配置或在更改pg_hba.conf
.
但是,尝试不同的命令,我得到以下信息:
pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found
service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.
我发现您需要指定 PostgreSQL 服务的确切名称,您可以在服务列表下找到该名称,使用方法
systemctl
(另见这篇文章):然后你可以使用
service
:或者
或者,您可以使用以下
systemctl
命令:或者
如果你在 postgresql 中有 sudogoer 作为角色,你也可以使用:
或更好:
或第一个(一次性):
然后(每次):
注意:
pg_ctl
不能以 root 身份运行。我不知道您的服务文件是如何设置的,所以我无法调试您的 systemd 命令。正如塞巴斯蒂安所说,它可能被命名为不同的东西。
至于pg_ctl,那是安装没有将目录添加到路径的结果。(这里的评论中提到了这样做的原因)。有几种不同的方法可以解决,但我建议只添加
/usr/pgsql-x.x/bin
到 postgres 用户的路径。只需添加PATH=$PATH:/usr/pgsql-x.x/bin
到 postgres 用户.bash_profile
,您就可以开始使用了。您也可以使用(在 MX Linux (Debian 9, Stretch) 上运行的 PostgresSQL 11)-
如果运行and命令,请确保
/sbin
它是路径的一部分。service
systemctl