【问题标题】:Postgres permission denied on MAC OS XMAC OS X 上的 Postgres 权限被拒绝
【发布时间】:2012-06-03 05:58:38
【问题描述】:

我正在按照 ruby​​ on rails 教程使用 postgres 运行,但是当我尝试“rake db:create”时出现以下错误:

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"?

我发现这个问题发出了一些类似的问题,但我还是无法让它工作。

Repairing Postgresql after upgrading to OSX 10.7 Lion

阅读此问题后,我已经安装了自制软件,路径很好,brew doctor 显示路径上没有错误。

【问题讨论】:

  • PostgreSQL 是否正在监听/var/pgsql_socket/.s.PGSQL.5432ls -l /var/pgsql_socket/.s.PGSQL.5432 显示什么? fuser /var/pgsql_socket/.s.PGSQL.5432 显示什么?
  • 第一个显示:ls: /var/pgsql_socket/.s.PGSQL.5432: Permission denied 第二个显示:/usr/bin/fuser: '/var/pgsql_socket/.s.PGSQL.5432'不存在
  • ls 的输出很有趣;使用sudo重新运行命令...
  • 还有ls -ld /var/pgsql_socket。听起来套接字目录烫发可能很奇怪。
  • 使用 sudo 运行:ls: /var/pgsql_socket/.s.PGSQL.5432: No such file or directory

标签: ruby-on-rails ruby-on-rails-3 macos postgresql osx-lion


【解决方案1】:

只需检查您的 config/database.yml 是否有------host: localhost 和 port:(通过 netstat -an | grep 5432 或 5433 自行检查)

【讨论】:

    【解决方案2】:

    您可以尝试 TCP 连接,而不是排除您的 socket 文件 权限问题。将host: localhost 添加到您的config/database.yml。当然,这只有在 postgres 正在侦听 TCP 流量时才有效。 Postgres 默认监听端口 5432,所以netstat -an | grep 5432 会告诉你它是否正在监听。

    参考文献

    【讨论】:

    • 如果netstat -an | grep 5432 没有输出,那么postgres 没有监听普通端口,或者没有监听任何端口。
    • 检查与连接相关的服务器设置。阅读第 18.3 章。 “连接和身份验证”postgresql.org/docs/9.1/interactive/…
    • 添加主机:本地主机为我解决了这个问题。非常感谢。
    【解决方案3】:

    我有同样的问题。在尝试了上面发布的所有建议均未成功后,我终于退出了终端并重新启动了它。

    这行得通。

    【讨论】:

      【解决方案4】:

      哦,可能你在另一个应用程序中打开了 postgre,比如 pgadmin http://www.pgadmin.org/ 尝试关闭任何使用 postgre SQL 的应用程序并再次运行您的命令。

      【讨论】:

        【解决方案5】:

        我今天遇到了同样的问题,发现下面这篇博文对我有帮助:

        http://nextmarvel.net/blog/2011/09/brew-install-postgresql-on-os-x-lion/

        它将您的 OS X 默认 postgres 二进制文件移动到一个存档文件夹中,并用符号链接自制版本来代替它们。

        TL;DR curl http://nextmarvel.net/blog/downloads/fixBrewLionPostgres.sh | sh

        【讨论】:

        • 这对我没有任何作用。
        【解决方案6】:

        我也遇到了这个问题,因为我的 Gemfile 中同时激活了 mysql 和 pg gem。

        我注释掉了 mysql gem:

        # mysql 
        

        然后跑:

        bundle install 
        

        然后:

        rake db:migrate 
        

        它就像一个魅力。

        【讨论】:

          猜你喜欢
          • 2015-01-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-06-29
          • 2016-02-07
          • 2021-09-04
          • 2012-10-24
          • 2011-03-24
          相关资源
          最近更新 更多