Ruby on rails Postgres无法连接到服务器

Ruby on rails Postgres无法连接到服务器,ruby-on-rails,ruby-on-rails-3,postgresql,rake,Ruby On Rails,Ruby On Rails 3,Postgresql,Rake,超级困惑于为什么Postgres没有开发我刚刚启动的新应用程序。我已经让它在一个应用程序上运行了。我正在使用postgres.app,它正在运行 我启动了一个新的应用程序 rails new depot -d postgresql 然后我进入database.yml文件,将username改为$USER(这就是另一个应用程序的用法,它正在工作)。现在,我的database.yml文件有以下开发部分: development: adapter: postgresql encoding:

超级困惑于为什么Postgres没有开发我刚刚启动的新应用程序。我已经让它在一个应用程序上运行了。我正在使用postgres.app,它正在运行

我启动了一个新的应用程序

rails new depot -d postgresql
然后我进入database.yml文件,将username改为$USER(这就是另一个应用程序的用法,它正在工作)。现在,我的database.yml文件有以下开发部分:

development:
  adapter: postgresql
  encoding: unicode
  database: depot_development
  pool: 5
  username: <username>
  password:
我尝试进入psql环境并列出用户(其中包括我的用户名)。在相同的psql环境中,我尝试了

CREATE DATABASE depot;
我已经确保pg gem是通过bundle安装安装的,我已经运行了“pg_ctl start”,我得到了以下响应:

pg_ctl: no database directory specified and environment variable PGDATA unset
我运行了“ps aux | grep postgres”以确保postgres正在运行,我得到了这一回报(这看起来还不错,对吧?)


EDIT2——当我向.yml文件添加密码,然后再次运行rake db:create时,我得到了相同的错误。我正在运行Mac OSX Lion,在我第一次安装PostgreSQL时,我做了initdb之类的工作。

为了创建一个数据库,在启动命令pg_ctl start

  • 您必须初始化数据库集群,然后只有pg_ctl start将成功完成*
这可以通过多种方式实现 如果您在Linux/centos上运行postgres 9.1

服务postgresql-9.1 initdb

或者你可以这样做

$ mkdir -p /var/pgsql/data; chown -R postgres /var/pgsql
$ su - postgres
$ initdb -D /var/pgsql/data

# Starting, testing:

$ postgres -D /var/pgsql/data > /var/pgsql/logfile 2>&1 &
$ createdb test
$ psql test

初始化postgresinitb因操作系统和postgres版本而异,如果上述命令不起作用,请在启动命令pg_ctl start

  • 您必须初始化数据库集群,然后只有pg_ctl start将成功完成*
这可以通过多种方式实现 如果您在Linux/centos上运行postgres 9.1

服务postgresql-9.1 initdb

或者你可以这样做

$ mkdir -p /var/pgsql/data; chown -R postgres /var/pgsql
$ su - postgres
$ initdb -D /var/pgsql/data

# Starting, testing:

$ postgres -D /var/pgsql/data > /var/pgsql/logfile 2>&1 &
$ createdb test
$ psql test
初始化postgresinitb因操作系统和postgres版本而异,如果上述命令不起作用,请查看添加

host: localhost
开发对我有用。

添加

host: localhost


开发对我来说很有用。

是的,看起来数据库已经启动并运行了。您能从命令提示符连接到PG吗?您没有授予任何用户访问数据库的权限。您可能希望
使用您的\u用户名创建数据库仓库
,或者
将数据库仓库中的所有内容授予您的\u用户名
。如果您还没有在PostgreSQL中为用户设置密码,那么您可能还需要为用户设置密码。您是如何做到的?我试过psql-h localhost,如果你是这个意思的话。这就是我上面所说的“环境”的意思。请在工作应用程序中发布与
config.yml
相同的部分,并删除您的凭据
***
'd。只需尝试使用所有者用户名创建数据库仓库,然后尝试\q并再次尝试rake db:CREATE,并出现类似错误。我应该在这两者之间做些别的事情吗?是的,看起来数据库已经启动并运行了。您能从命令提示符连接到PG吗?您没有授予任何用户访问数据库的权限。您可能希望
使用您的\u用户名创建数据库仓库
,或者
将数据库仓库中的所有内容授予您的\u用户名
。如果您还没有在PostgreSQL中为用户设置密码,那么您可能还需要为用户设置密码。您是如何做到的?我试过psql-h localhost,如果你是这个意思的话。这就是我上面所说的“环境”的意思。请在工作应用程序中发布与
config.yml
相同的部分,并删除您的凭据
***
'd。只需尝试使用所有者用户名创建数据库仓库,然后尝试\q并再次尝试rake db:CREATE,并出现类似错误。我应该在这两者之间做些别的事情吗?我在OSX Lion上,在安装postgres时我已经做了initdb。我是否需要为每个应用程序重新执行此操作?不,这是一个一次性过程,如果此目录存在/Library/PostgreSQL/9.1/data,请告诉我您的Postgrescheck版本,如果是,请在重新启动pg_ctl-D/Library/PostgreSQL/9.1/data-l日志文件后启动chmod 700/Library/PostgreSQL/9.1/data,然后尝试创建数据库,让我知道结果不存在!天啊,我的电脑真奇怪。不久前我经历了一次崩溃,突然我的整个环境消失了,我不得不重新安装ruby/rails/等等,从那以后一切都出了问题。库中没有PosgreSQL目录我该怎么办?请也这样做mv/usr/lib/libssl.dylib/usr/lib/libssl.dylib.BAK sudo ln-s/Library/PostgreSQL/9.1/lib/libcrypto.dylib/usr/libcrypto.dylib sudo ln-s/Library/PostgreSQL/9.1/lib/libssl.dylib/usr/lib/libssl.dylibI在OSX Lion上,我在安装postgres时已经做了initdb。我是否需要为每个应用程序重新执行此操作?不,这是一个一次性过程,如果此目录存在/Library/PostgreSQL/9.1/data,请告诉我您的Postgrescheck版本,如果是,请在重新启动pg_ctl-D/Library/PostgreSQL/9.1/data-l日志文件后启动chmod 700/Library/PostgreSQL/9.1/data,然后尝试创建数据库,让我知道结果不存在!天啊,我的电脑真奇怪。不久前我经历了一次崩溃,突然我的整个环境消失了,我不得不重新安装ruby/rails/等等,从那以后一切都出了问题。库中没有PosgreSQL目录我该怎么办?请也这样做mv/usr/lib/libssl.dylib/usr/lib/libssl.dylib.BAK sudo ln-s/Library/PostgreSQL/9.1/lib/libcrypto.dylib/usr/libcrypto.dylib sudo ln-s/Library/PostgreSQL/9.1/lib/libssl.dylib这个解决方案对我很有效,与op接受的解决方案不同。这个解决方案对我有效,与op接受的解决方案不同。
service  postgresql-9.1 start
$ mkdir -p /var/pgsql/data; chown -R postgres /var/pgsql
$ su - postgres
$ initdb -D /var/pgsql/data

# Starting, testing:

$ postgres -D /var/pgsql/data > /var/pgsql/logfile 2>&1 &
$ createdb test
$ psql test
host: localhost