在 Apple Silicon(M1/M2)Mac 上,解决在 Homebrew 上为 Phoenix Framework 安装 PostgreSQL 时出现的错误的方法是什么?
以下是解決在 Apple Silicon (M1/M2) Mac 上使用 Homebrew 安裝 PostgreSQL 給 Phoenix Framework 所遇到的錯誤的方法的說明。
呈現步驟
-
- 执行以下命令进行安装:brew install postgresql 或 brew install postgresql@14
执行 psql -U postgres
出现错误
错误1
如果出现这样的错误情况
psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
Is the server running locally and accepting connections on that socket?
当您忘记启动PostgreSQL时,将出现此错误。
首先,必须按照以下步骤进行。
-
- 执行 brew install postgresql 或者 brew install postgresql@14
执行 brew services start postgresql 或者 brew services start postgresql@14(根据之前的命令选择执行哪一个)
执行 psql -U postgres
常见的错误处理方法
如果在这种情况下出现任何错误
首先,我们要查看PostgreSQL的日志。PostgreSQL的日志位置如下所示。
`brew --prefix`/var/log/postgresql@14.log
(可能会有无法追加到14的情况)
用以下的命令来查看日志文件末尾的内容。
tail -100 `brew --prefix`/var/log/postgresql@14.log
如果发生错误,将显示退出错误代码1,错误或致命错误。
将此错误消息复制并与关键词 “postgresql” 一起在 Google 搜索。你可能会看到英语页面,但是不要害怕机器翻译!只需逐个解决问题,最终你应该能够通过 psql -U postgres 正常启动。
在执行这样的处理方法时,最好是先调查一下所使用的命令具体起到什么作用。这样做可以帮助我们获得更深入的理解,即使按照所写的进行操作时出现问题,也能够做出相应的应对。
第二个错误示例
如果出现以下错误的情况
FATAL: role postgres does not exist
这个错误意味着不存在名为postgres的角色(用户)。
由于世界上存在各种不同环境针对这个错误进行的尝试和错误,因此我们花了很多心思来寻找与Apple Silicon Mac情景完美契合的案例。
在其中,我找到了以下的步骤。
由于这是适用于Intel Mac的步骤,因此适用于Apple Silicon Mac的情况将会是以下的方式。
/opt/homebrew/Cellar/postgresql/<version>/bin/createuser -s postgres
PostgreSQL的部分可能会变成postgresql@14。另外,在中,实际上可能会填入14.6等版本号。
我尝试编写了一份适用于Intel和Apple Silicon两种情况的操作步骤,并且尽可能用简单易懂的方式来让初学者理解。
首先,请在终端中输入以下命令:
`brew --prefix`
我会接着打下去。
`brew --prefix`/Cel
在这里按两次Tab键。接下来会显示如下(适用于Apple Silicon Mac)。
/opt/homebrew/Cellar/
这是一个名为”自动补全”的功能。使用这个功能可以用最少的按键输入命令。
我們繼續如下。
/opt/homebrew/Cellar/postgres
在这里也要击打制表键。然后根据实际安装的postgreSQL版本,会出现下列结果(或有候选项)。
/opt/homebrew/Cellar/postgresql@14/
如果再按一次Tab键,可能会自动补全的部分。在我的环境中,如下所示。
/opt/homebrew/Cellar/postgresql@14/14.6_1/
连续输入以下命令。
/opt/homebrew/Cellar/postgresql@14/14.6_1/bin/createuser -s postgres
这个命令是用来创建用户的。执行这个命令应该能够解决问题。