我已经搜索了如何关闭psql端口一段时间,但大多数答案都在讨论使用\q
关闭psql命令行,这不是我想要的。
我的问题是,我的笔记本电脑上的postgresql正在运行并监听端口5432,但我想使用端口5432进行其他一些用途。通常我运行netstat -plnt
来查找要杀死的进程,但在这种情况下,侦听端口5432的进程没有进程ID ...
关于如何释放端口5432的任何想法?
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN -
答案 0 :(得分:1)
psql
是连接到postgres服务器的客户端。关闭与\q
的连接只会完成会话。当它发生时,该会话的后端停止,因此通过关闭连接,您只释放服务器上的pid。并且服务器继续监听端口5432。
如果要停止侦听端口5432,可以使用pg_ctl stop
停止postgres服务器,或者甚至在postgres.conf中为其分配不同的端口,这样就可以并行运行这两个程序
<强>更新强>
如果你从软件包(Ubuntu / Debian / Fedora / RHEL / CentOS / etc)安装,你应该使用系统服务管理器来停止postgresql。例如在RHEL 7或Fedora,sudo systemctl stop postgresql-9.6
(或任何你的版本)而不是pg_ctl
(引用Craig Ringer)