rake db:migrate失败

ken*_*y66 3 rake ruby-on-rails abort

我刚开始研究Rails.当我尝试"rake db:migrate"时,发生以下错误.

耙子流产了!致命:用户"kt1"的对等身份验证失败

似乎database.yml有问题,但我不知道如何解决.请给我一个建议.


非常感谢您的评论和编辑.我正在使用postgresql(0.13.2).我的环境如下.Ubuntu 11.10 Ruby 1.8.7 Rails 3.2.3 gem 1.8.21

database.yml如下.


# PostgreSQL. Versions 8.2 and up are supported.
#
# Install the pg driver:
#   gem install pg
# On Mac OS X with macports:
#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
#   gem install pg
#       Choose the win32 build.
#       Install PostgreSQL and put its /bin directory on your path.
#
# Configure Using Gemfile
# gem 'pg'
#
development:
  adapter: postgresql
  encoding: unicode
  database: kt1_development
  pool: 5
  username: kt1
  password:

  # Connect on a TCP socket. Omitted by default since the client uses a
  # domain socket that doesn't need configuration. Windows does not have
  # domain sockets, so uncomment these lines.
  #host: localhost
  #port: 5432

  # Schema search path. The server defaults to $user,public
  #schema_search_path: myapp,sharedapp,public

  # Minimum log levels, in increasing order:
  #   debug5, debug4, debug3, debug2, debug1,
  #   log, notice, warning, error, fatal, and panic
  # The server defaults to notice.
  #min_messages: warning

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: postgresql
  encoding: unicode
  database: kt1_test
  pool: 5
  username: kt1
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: kt1_production
  pool: 5
  username: kt1
  password:
Run Code Online (Sandbox Code Playgroud)

我也尝试用空白的用户名.然后错误来了

rake aborted!
FATAL:  role "kenji" does not exist
Run Code Online (Sandbox Code Playgroud)

(kenji是我在Ubuntu上的用户名.)

Dex*_*ter 9

尝试像这样修改您的(/etc/postgresql/9.1/main/)pg_hba.conf文件,将本地用户的方法从peer更改为trust.

# Database administrative login by UNIX sockets
local   all         postgres                          trust

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
# IPv6 local connections:
host    all         all         ::1/128               md5
Run Code Online (Sandbox Code Playgroud)