【🔴错误处理】使用 “Rails s” 无法执行 PostgreSQL
✅错误情况 (wù
我在自己拥有的Mac上使用Rails开发Web应用,突然间出现了一个错误,导致无法启动Rails的”Rails s”命令。
?错误信息
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
psql:无法连接到服务器:找不到该文件或目录。
服务器是否在本地运行,并接受通过Unix域套接字”/tmp/.s.PGSQL.5432″的连接?
?发生错误的经过
昨天还能正常启动Rails且没有错误(之后关闭了操作系统),但第二天重新启动操作系统后,无法使用”Rails s”命令。
? 我嘗試過的事情
-
- OSの再起動
-
- PostgreSQLの再起動(「brew services stop/start」コマンドを実施)
-
- 「Rails c」、「Rails db」コマンドなどのrailsコマンドでも同事象が発生
- Railsコマンドを使わず、PostgreSQLコマンド(psql)でも同事象が発生
? 我方的开发环境
項目バージョン or 詳細MacOSCatalina 10.15.6パッケージ管理システムHomebrewPostgreSQL11.9Ruby2.6.5Ruby on Rails5.2.4
✅找到解決方法
我通过以下方法解决了这个问题。
#PostgreSQLのサービスを停止
brew services stop postgresql
#クラッシュファイルを削除
rm /usr/local/var/postgres/postmaster.pid
#PostgreSQLのサービスを起動
brew services start postgresql
?其他的解决方法
如果以上的方法没有解决问题,我们进行了重新安装PostgreSQL。
#PostgreSQLのアンインストール
brew uninstall --force postgresql
#PostgreSQLの残ファイルを削除
ll /usr/local/var/postgres
rm -rf /usr/local/var/postgres
#PostgreSQLのインストール
brew install postgresql
✔️原因
✔️缘由
✔️由于
✔️起因
根据我们的情况来看,可能是因为当进程崩溃时导致的“postmaster.pid”文件残留,从而导致错误发生。
由于存在所谓的垃圾文件,PostgreSQL似乎无法启动。
作为错误发生的趋势,我们发现在操作系统启动后无法使用rails命令,这可能意味着在上一次操作系统关闭时,操作系统或者PostgreSQL崩溃,并且PostgreSQL无法正常停止。
✔ 参考资料
PostgreSQL在Mac上未运行。
从安装到启动/停止PostgreSQL的步骤。
[MacOS] 完全卸载PostgreSQL的 Homebrew 方法。