连接PostgreSQL数据库时出现的Rails问题

7
尝试在Mac OS X 10.8上通过postgresql运行Rails以部署到Heroku。我不太熟悉Mac系统。在安装PostgreSQL时遇到了很多麻烦,可能是因为我尝试了所有能找到的解决方法,导致出现了一些权限和现有OSX安装相关的问题。对于这个问题,我注意到一些东西让我觉得存在一些基本的目录或版本冲突,但我不确定如何解决。当然也有可能是其他原因所致!感激各位的帮助!
现在我收到了以下错误提示:
$ rake db:create:all
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"?

我不确定为什么会查找var目录,但是~/var似乎是指向/private/var的链接(别名),其中有空的pgsql_socket和pgsql_socket_alt目录,/usr/local/var没有pgsql_socket目录,但有一个postgres目录。这两个目录中,我的管理员用户都有读取和写入权限。以上显示的错误后面是长堆栈在gems 1.8目录中,并以此结束:
Couldn't create database for {"pool"=>5, "database"=>"blog_development", "password"=>nil, "username"=>"USERNAME", "encoding"=>"unicode", "adapter"=>"postgresql"}

因此需要检查:

   $ which psql
/usr/bin/psql

我记得在安装完PostgreSQL后,我做了以下操作:
  initdb /usr/local/var/postgres -E utf8

确认:

$ ps aux | grep postgres
username           346   0.0  0.1  2479616   7724   ??  S     3:08PM   0:00.03 /usr/local/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log

bundle show命令输出:pg (0.14.1)


$ postgres --version
postgres (PostgreSQL) 9.2.1

echo $PATH没有显示任何对posgresql的引用。 此应用程序位于/Users/USERNAME/SUBDIR/APP中。

您有任何想法,在哪里出错,以及如何使此内容正常运行吗? 我会感激任何指导。我将继续查阅Stack Overflow和Google讨论;尽管我的愚蠢可能是独特的!

谢谢。


你的 database.yaml 文件中是否设置了主机和端口?另外,使用 homebrew 是安装 PostgreSQL、MySQL 等数据库最简单的方法。 - iouri
我是通过Homebrew安装的。主机和端口不在.yml文件中。这些值应该是什么?跟随Railscasts不需要编辑.yml文件以添加这些信息。 - twinturbotom
根据这个讨论,我把"/usr/local/bin"移动到了etc/paths文件的顶部,所以psql输出被更改为/usr/local/bin/psql...但是对我来说没有用。我正在搜索和尝试一切! - twinturbotom
这似乎不对吧?'$ sudo find ~/ -name "pg_hba.conf" /Users/USERNAME//Library/Application Support/Postgres/var/pg_hba.conf' - twinturbotom
将 host: localhost 添加到 database.yml 中,现在一切似乎都正常了。我能够运行 rake db:create:all 并获得 rails s 关于您的应用程序输出。谢谢。不确定为什么必须这样做?谢谢。 - twinturbotom
1个回答

25

添加

host: localhost

到database.yml


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接