我得到了一个错误:

FATAL: Peer authentication failed for user "postgres"

当我试图让博士后使用Rails时.

这是我的pg_hba.confdatabase.ymldump of the full trace.

我在pg_hba中将身份验证更改为md5,并try 了不同的方法,但似乎都不起作用.

我还try 按照Rails 3.2, FATAL: Peer authentication failed for user (PG::Error)创建一个新用户和数据库

但它们不会出现在pgadmin上,甚至在我跑sudo -u postgres psql -l的时候也不会出现.

知道我哪里出错了吗?

推荐答案

问题仍然是你的pg_hba.conf个文件*.

这一行:

local   all             postgres                                peer

应该是:

local   all             postgres                                md5

*这个文件的位置不太一致.命令locate pg_hba.conf应该有所帮助;下面是一些例子:/etc/postgresql/*/main/pg_hba.conf/var/lib/pgsql/data/pg_hba.conf.

更改此文件后,不要忘记重新启动PostgreSQL server.如果你在Linux上,那就是sudo service postgresql restart.

以下是根据official PostgreSQL docs on authentication methods个选项对这两个选项的简要描述.

对等身份验证

对等身份验证方法通过获取客户端的

密码验证

基于密码的身份验证方法有md5和password.这些

如果您担心密码"嗅探"攻击,那么md5

Sample location for pg_hba.conf:
/etc/postgresql/9.1/main/pg_hba.conf

Ruby-on-rails相关问答推荐

Ruby线程使用互斥处理并发问题

我try 使用Ruby on Rails7创建一个Carbon 足迹计算器.但我无法保存和用户S对象

使用ActiveSupport::TimeWithZone将UTC转换为用户定义的时区

ActiveRecord::声明在类别中无效#new

从Rails中的字符串中间提取子字符串

跳过模型中的某些验证方法

FactoryGirl + Faker - 为数据库种子数据中的每个对象生成相同的数据

从子类中的重载方法调用基类方法

默认情况下,如何在 Rails 中使 cookie 安全(仅限 https)?

Rails:设计:按角色登录后重定向

在 Rails 4 中检测用户代理 - 读取 HTTP 标头

Rails - 生产模式下的错误

如何在 Windows 上为 Ruby 安装 sqlite3?

将根 url 重定向到 Rails 应用程序中的其他位置

Ruby 和 Ruby on Rails 离线 API 文档

Rails Associations - has_many => :through - 但相同的模型

用户注册时设计确认令牌无效

以最Ruby 风格计算 ActiveSupport:TimeWithZone 天数的差异?

测试和规格有什么区别?

在 Ruby on Rails 中设置日志(log)记录级别