【🔴错误处理】使用 “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 方法。

广告
将在 10 秒后关闭
bannerAds