我在Ubuntu 10.10上使用Rails 3.0和PostgreSQL 8.4,在pg gem上使用Ruby 1.9.2p136。当我运行rake db:migrate
时,我收到错误FATAL: password authentication failed for user "my_os_user_account"
,当我实际上希望它以database.yml中指定的my_db_username登录数据库时。
我在pg_hba.conf中为Unix套接字和IP连接配置了md5身份验证,我可以在命令行上使用psql
登录。我也尝试将身份验证设置为信任。 psql
然后允许我在不输入密码的情况下登录,但Rails然后提供FATAL: role "my_os_user_account" does not exist
。
这是database.yml:
development:
adapter: postgresql
database: my_project_dev
user: my_db_username
password: my_password
pool: 5
timeout: 5000
其他几乎相同的测试和生产条目。
答案 0 :(得分:10)
username
的正确密钥实际上是username
而不是user
。容易犯错,容易修复。
答案 1 :(得分:1)
我有类似的问题。但是,我的问题是实际用户名括号和database.yml中的passowrd,如“[admin] ... [passowrd]”,这适用于ruby 1.8.7,但不适用于较新的版本。花了整整一天加剧了这一天。我意识到读完这篇文章后可能会这样。 (耸耸肩)希望这有助于其他人。