这是关于基于 Arm 的芯片(Apple M1)。 我使用 Homebrew 安装了 postgresql@16,它的工作方式非常奇怪。
运行
brew services list
并得到:
Name Status User File
postgresql@16 error 256 dmitry ~/Library/LaunchAgents/[email protected]
如果我通过brew关闭postgresql@16并尝试
pg_ctl -D /opt/homebrew/var/postgresql@16 start
,我得到:
2024-06-21 17:32:26.356 MSK [3252] LOG: starting PostgreSQL 16.3 (Homebrew) on aarch64-apple-darwin23.4.0, compiled by Apple clang version 15.0.0 (clang-1500.3.9.4), 64-bit
2024-06-21 17:32:26.356 MSK [3252] LOG: could not bind IPv6 address "::1": Address already in use
2024-06-21 17:32:26.356 MSK [3252] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2024-06-21 17:32:26.356 MSK [3252] LOG: could not bind IPv4 address "127.0.0.1": Address already in use
2024-06-21 17:32:26.356 MSK [3252] HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
2024-06-21 17:32:26.356 MSK [3252] WARNING: could not create listen socket for "localhost"
2024-06-21 17:32:26.356 MSK [3252] FATAL: could not create any TCP/IP sockets
2024-06-21 17:32:26.357 MSK [3252] LOG: database system is shut down
尽管在 Django 项目中数据库功能正常,对象被创建/接收等等。但是通过 Pycharm 中的终端(
psql postgres
)什么也做不了,在请求之后我只有状态postgres-#
,什么也没有发生。
我尝试使用这个解决方案,但我在
postmaster.pid
中没有/opt/homebrew/var/postgresql@16
文件。我所知道的解决方案都没有帮助我。
我也有和你类似的情况。就我而言,根本原因是下载 PostgreSQL 两次 - 一次来自 enterprisedb(我相信我是从 https://www.postgresql.org/download/macosx/ 下载的)和 homebrew 中下载的一个。 “brew services start postgresql”失败的原因是5432端口被enterprisedb占用了
要解决或验证此问题,您可以将 /opt/homebrew/var/postgresql/postgresql.conf 中的端口更改为 5433(或其他值)并检查“brew services start postgresql”是否有效。如果是的话,你可以检查一下5432端口被哪个应用程序占用了
希望这对您有帮助。