postgres没有用户或角色,无法创建但可以使用rails吗?

时间:2014-08-28 21:33:55

标签: ruby-on-rails postgresql psql pg

我正在尝试在OSX上设置postgres。我遇到了rails应用程序的问题(“无法连接到数据库”)并重新安装了自制的postgres。我现在不能从终端发出postgres命令:

$ sudo -u _postgres psql
Password:
psql: FATAL:  role "_postgres" does not exist
$ brew list
autoconf    libksba     openssl     python      sqlite
automake    libtool     ossp-uuid   rbenv
gdbm        libyaml     pkg-config  readline
libgpg-error    mongodb     postgresql  ruby-build
$ postgresql
zsh: command not found: postgresql
$ psql
psql: FATAL:  database "connorleech" does not exist

此命令可以正常工作:

$ sudo -u _postgres
usage: sudo -h | -K | -k | -L | -V
usage: sudo -v [-AknS] [-g groupname|#gid] [-p prompt] [-u user name|#uid]
usage: sudo -l[l] [-AknS] [-g groupname|#gid] [-p prompt] [-U user name] [-u
            user name|#uid] [-g groupname|#gid] [command]
usage: sudo [-AbEHknPS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user
            name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>]
usage: sudo -e [-AknS] [-C fd] [-g groupname|#gid] [-p prompt] [-u user
            name|#uid] file ...

在我用自制软件重新安装postgresql后,我的rails app开始使用这个app/config/database.yml

development:
  adapter: postgresql
  encoding: utf8
  host: localhost
  database: project_development
  pool: 5
  username: 
  password:

问题:

  1. 如何从终端发出postgres命令?
  2. 如果我从未创建本地postgres用户或数据库,那么rails如何运行应用程序?

1 个答案:

答案 0 :(得分:0)

来自Homebrew FAQ

  

Homebrew旨在不使用sudo 工作。您可以决定使用它,但我们强烈建议您不要这样做。如果您使用过sudo并遇到错误,则可能是原因......

您使用sudo -u _postgres psql的第一个想法不适用于自制软件。我认为它适用于Apple打包的PostgreSQL(OS X Server Edition附带,而不是桌面版)

brew postgresql包不需要或创建名为_postgrespostgres的用户,它建议您在自己的操作系统用户下运行服务器。

如果服务器正在运行并且没有其他配置问题,

/usr/local/bin/psql应该可以成功启动并连接到您的默认数据库。

另见brew info postgresql的输出,它提供了开始所需的信息位。