第一次在本地机器上安装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
有人可以向我解释这个错误意味着什么,以及为什么我第一次创建第一个用户时它没有向我显示此错误?那么我也会感谢知道解决方案。
谢谢
答案 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服务器并尝试创建数据库。