硬重启后无法连接到Postgresql(在Rails中)

时间:2016-05-20 01:06:38

标签: ruby-on-rails postgresql redis foreman

我的mac锁定了所以我不得不做一个硬关机(按住电源键直到它关闭,然后重新打开)。现在当我尝试启动我的本地rails应用程序(在崩溃之前运行正常)时,我得到以下Action Controller异常:

PG::ConnectionBad
could not connect to server: No such file or directory Is the server 
running locally and accepting connections on Unix domain socket 
"/var/pgsql_socket/.s.PGSQL.5432"? 

一个月前,当我的计算机崩溃时,我遇到了类似的问题,最终找到了解决方案。但是我今天一直在寻找和研究几个小时但没有运气。

我几乎是一个菜鸟,但是为了它的价值,我使用foreman start并使用Redis启动服务器。但说实话,我不确切知道那些人做了什么。

感谢。

3 个答案:

答案 0 :(得分:1)

这通常适合我。

$ launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
$ pg_ctl restart -D /usr/local/var/postgres
$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

答案 1 :(得分:1)

最终我最终卸载并重新安装了postgresql:

brew remove postgresql brew install postgresql

也许有一个不那么激烈的解决方案,但它非常快速和轻松,我回到了公司。

我在开发环境中工作,并准备丢失我的数据并重新设置数据库,但所有数据仍然存在。

答案 2 :(得分:0)

PostgreSQL的数据目录中有一个文件,用于存储PostgreSQL服务器的进程ID:

  

“ postmaster.pid”

在系统崩溃的情况下,该文件可能仍指向旧进程,或者文件可能已损坏。可以通过删除文件并启动PostgreSQL服务器来解决该问题。

在Mac中,文件位于:

/usr/local/var/postgresql@[version of postgresql]
e.g. /usr/local/var/postgresql@9.6

Mac中PostgreSQL 9.6版的命令摘要:

cd /usr/local/var/postgresql@9.6$
mv  postmaster.pid postmaster.pid.bk
brew services start postgres@9.6