使用postgres创建数据库的Rails错误

时间:2014-03-22 03:24:23

标签: ruby-on-rails postgresql

第一次在本地机器上安装postgresql时,我使用以下命令创建了一个用户“user1”:

$ sudo su postgres -c psql
postgres=# CREATE ROLE user1 SUPERUSER LOGIN;
postgres=# \q

然后设置我的database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: appname_development
  pool: 5
  timeout: 5000
  username: user1
  password:

并且一切正常,所以今天我创建了一个新应用程序,然后我做了相同的步骤(创建一个新用户“user2”并修改我的database.yml)

development:
  adapter: postgresql
  encoding: unicode
  database: application2_development
  host: localhost
  pool: 5
  timeout: 5000
  username: user2
  password: 

但是当我尝试创建数据库时

$ rake db:create:all

我收到此错误:

FATAL:  Peer authentication failed for user "application2"

我尝试通过向host: localhost添加database.yml来解决问题,但现在又出现了另一个错误:

fe_sendauth: no password supplied

有人可以向我解释这个错误意味着什么,以及为什么我第一次创建第一个用户时它没有向我显示此错误?那么我也会感谢知道解决方案。

谢谢

1 个答案:

答案 0 :(得分:0)

我已经遇到了这个问题并修复了它。

我认为,这会对您有所帮助。

请找到' pg_hba.conf'和postgresql.conf个文件。

通常,pg_hba.conf和postgresql.conf文件位于/etc/postgresql/9.1/main/

把所有md5'放在本地在pg_hba.conf中保存。

打开postgresql.conf文件,并注明listen_addresses = 'localhost'port = 5432行。然后取消注释。

最后重启到pg服务器并尝试创建数据库。