我得到了一个错误:
致命:用户“postgres”的对等身份验证失败
当我试图让postgres使用Rails时
这是我的pg_hba.conf、我的数据库.yml,以及完整跟踪的转储
我在pg_hba中将身份验证更改为md5,并尝试了不同的方法,但似乎都不起作用
我还尝试按照Rails3.2创建一个新用户和数据库,致命:用户的对等身份验证失败(PG::Error)
但是它们不会出现在pgadmin上,甚至在我运行sudo-u postgres psql-l时也不会出现
知道我哪里出错了吗
问题仍然是您的pg_hba.conf文件*
这一行:
本地所有博士后同级
应该是:
本地所有postgres md5
*此文件的位置不太一致。命令
locate pg_hba.conf应该会有所帮助;下面是一些示例:/etc/postgresql/*/main/pg_hba.conf和/var/lib/pgsql/data/pg_hba.conf
更改此文件后,不要忘记重新启动PostgreSQL server。如果您使用的是Linux,那将是sudo服务postgrestart
根据官方PostgreSQL文档关于身份验证方法的介绍,以下是这两个选项的简要说明
对等身份验证
对等身份验证方法通过获取客户端的
内核中的操作系统用户名,并将其用作允许的
数据库用户名(具有可选的用户名映射)。这种方法是可行的
仅在本地连接上受支持
密码验证
基于密码的身份验证方法有md5和password。这些
除发送密码的方式外,其他方法的操作方式类似
通过连接,即分别使用MD5哈希和明文如果您对密码有任何顾虑”;嗅;然后攻击md5
是首选。如果可能,应始终避免使用普通密码。
但是,md5不能与db_user_命名空间功能一起使用。如果
连接受SSL加密保护,然后可以使用密码
安全(尽管SSL证书身份验证可能是更好的选择)
如果依赖于使用SSL)
pg_hba.conf的示例位置:
/etc/postgresql/9.1/main/pg_hba.conf