端口5432已被占用,PostgreSQL在Mac上。

5
安装Postgresql 11时,我遇到了一个错误。我按照教程操作,但是在谷歌上搜索并没有找到解决方法。我并没有尝试运行不同版本的postgresql,我只是想安装它。
错误信息如下:端口5432已被占用。

你来到了错误的网站。Stackoverflow是用于编程问题的,而superuser.com则是用于基本软件问题的。 - anothermh
@Mike,你能否检查一下我的答案,看看是否可以解决这个问题? - Arefe
6个回答

17
$ sudo lsof -i :5432
$ sudo pkill -u postgres

这是对我有用的解决方法,lsof -i :5432 没有显示任何内容,但在运行第二个命令后,我终于可以使用 5432 端口。

这是对我有用的解决方法,lsof -i :5432 没有显示任何内容,但在运行第二个命令后,我终于可以使用 5432 端口。


1
错误已经在截图中显而易见。默认情况下,Postgres 运行在 5432 端口上,除非你进行了其他配置。
打开终端并输入 pg_ctl stop 命令以停止 Postgres 并重试。
你也可以输入 ps aux|grep postgres 命令查看当前正在使用 Postgres 的进程。

0

OS X 默认创建了一个名为PostgreSQL的用户,这会导致此问题。您需要删除此用户,因为您永远不需要以该用户身份登录,并且您应该让端口5432免费。


0
如果每次你杀掉Postgres后它都在后台重新启动,那么可能是因为你在操作系统上设置了一个后台服务,每次你杀掉它时它都会重新运行。
对我来说,我在通过brew安装Postgres后不小心设置了这个后台服务。当你安装完后,brew会给你选择将其作为后台服务运行的选项。
你可以尝试以下命令:
brew services list 

launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist 

0

我曾经遇到过类似的问题,但是用户是我而不是postgresql。lsof输出

解决方法如下:

brew uninstall postgresql

然后从监控系统(MacOS基本工具):

关闭所有由postgresql运行的进程 输入图像描述


-2
通常这意味着您的 Mac 上已经运行了一个 PostgreSQL 服务器。

错误已经在屏幕截图中明显展示。Postgres默认运行在5432端口,除非你对其进行了配置。 - Mr. Rene

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接