命令简介
pg_ctl 启动、关闭、重启 postgres
pg_ctl start [-w] [-s] [-D datadir] [-l filename] [-o options] [-p path] pg_ctl stop [-W] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] pg_ctl restart [-w] [-s] [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-o options] pg_ctl reload [-s] [-D datadir] pg_ctl status [-D datadir] pg_ctl kill [signal_name] [process_id] pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-w] [-o options] pg_ctl unregister [-N servicename]
具体说明见参考资料。
实操记录
# 查找 pg_ctl [root@localhost ~]# whereis pg_ctl pg_ctl: /usr/bin/pg_ctl /usr/share/man/man1/pg_ctl.1.gz # 启动 postgres [root@localhost ~]# su postgres bash-4.2$ /usr/bin/pg_ctl -D /var/lib/pgsql/data start could not change directory to "/root" pg_ctl: another server might be running; trying to start server anyway server starting bash-4.2$ FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 30063) running in data directory "/var/lib/pgsql/data"?
出现如下错误 could not change directory to "/root",因为在 postgres 中不能自动切换路径,解决方法
bash-4.2$ cd /usr/bin bash-4.2$ pwd /usr/bin bash-4.2$ ./pg_ctl -D /var/lib/pgsql/data start server starting
可能出现如下错误 pg_ctl: PID file "/var/lib/pgsql/data/postmaster.pid" does not exist,可以查看启动日志
我操作时是因为磁盘满了,无法创建新的文件 postmaster.pid,清除缓存腾出一点空间即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)