Rails中的PostqreSQL:如何让服务器在本地运行并接受Unix域套接字上的连接?

所以我是Rails的新手,之前只使用过SQLite3,而且在使用PostgreSQL时我甚至都在努力运行一个简单的rake命令。

我只想按照安装Postgres的这个截屏video的前5分钟进行操作: http : //railscasts.com/episodes/342-migrating-to-postgresql

但即使我按照指示完成了所有操作,当我运行rake db:create:all我得到了无处不在的错误消息:

 could not connect to server: Permission denied Is the server running locally and accepting connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"? 

我到处都看到这一点,但有人可以一劳永逸地回答这个问题(如果这样的任务如此简单)?

我用homebrew来安装PostgreSQL。

当我运行which psql ,它说我正在使用usr/bin/psql中的那个,我相信它是Mac OSX Lion原生的那个(这不是一件坏事吗?我怎么切换到一个由homebrew安装,在usr/local/bin/psql ?)。

我相当肯定Postgres至少在运行:当我运行ps auxw | grep postgres ps auxw | grep postgres ,我得到了我的四个流程,例如:

 postgres: stats collector process postgres: autovacuum launcher process postgres: wal writer process postgres: writer process 

我甚至可以安装我的pg gem。 我一整天都在努力让Postgres跑步,我感谢所有人的帮助!

编辑(解决方案):

参考此链接:

升级到OSX 10.7 Lion后修复Postgresql

确实存在路径问题。 所以我按照指示编辑了我的.bash_profile,并从使用usr/bin/psql中的原生psql安装切换到homebrew, usr/local/bin/psql

然后,我卸载了我的pg gem,然后重新安装它,然后rake dr:create:all开始工作了。 🙂

编辑2:

实际上,我仍然有很多问题! 这太令人沮丧了! 🙂

您的权限可能搞砸了。 尝试

 sudo chmod -R 777 /var/pgsql_socket/ 

这为每个人提供了开放权限,因此它适合您的开发服务器需求。

现在它应该工作。