首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按端口号停止PostgreSQL实例

按端口号停止PostgreSQL实例
EN

Stack Overflow用户
提问于 2020-11-19 07:56:15
回答 1查看 698关注 0票数 0

是否可以仅通过端口号来停止postgres实例?我在端口5433上运行了一个pgsql,当我尝试运行时:

代码语言:javascript
复制
/usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/new_cluster/data stop

当我指定-D时,这是可行的,但是假设我不知道$PGDATA在哪里,我只知道运行在这个实例上的端口号,可以停止它吗?

代码语言:javascript
复制
/usr/pgsql-10/bin/pg_ctl -p 5433 stop

运行此命令将导致:

代码语言:javascript
复制
waiting for server to shut down.... done
server stopped

但是当我试图通过psql -p 5433输入这个实例时,我仍然可以进入。*我知道使用systemctl可以这样做,但我需要在没有根权限的情况下这样做。

我尝试这样做是因为:我创建了一个pg_basebackup,我希望停止真正的数据库,并在同一个端口上运行pg_basebackup刚刚创建的数据库。只是为了确认备份是否正常。

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 08:11:37

-p不是pg_ctl中的端口号。文献资料说:

-p path 指定postgres可执行文件的位置。默认情况下,postgres可执行文件是从与pg_ctl相同的目录中提取的,或者如果没有,则从硬连接的安装目录中提取。没有必要使用此选项,除非您正在做一些不寻常的事情,并得到没有找到postgres可执行文件的错误。

所以这对pg_ctl stop没有任何作用,因为这会从postmaster.pid中找到进程ID。您停止了环境变量PGDATA指向的集群。

如果要按端口号停止PostgreSQL,请以超级用户(或pg_read_all_settings角色的成员)的身份连接并运行

代码语言:javascript
复制
SHOW config_file;

然后从输出中去掉postgresql.conf,您就有了与-D一起使用的参数。很容易就可以写成剧本了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64907501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档