title: PostgreSQL: FATAL - Peer authentication failed for user (PG::ConnectionBad)
body: <p>I am working with PostgreSQL and I have a user with password matching the one specified in database.yml</p>
  
  <pre><code>postgres=# select * from pg_user
  ;
    usename   | usesysid | usecreatedb | usesuper | usecatupd | userepl |  passwd  | valuntil | useconfig 
  ------------+----------+-------------+----------+-----------+---------+----------+----------+-----------
   goodsounds |    16386 | t           | t        | t         | t       | ******** |          | 
   postgres   |       10 | t           | t        | t         | t       | ******** |          | 
  (2 rows)
  </code></pre>
  
  <p>But when I try creating a database by running the command</p>
  
  <pre><code>rails db:create
  </code></pre>
  
  <p>I get the error</p>
  
  <blockquote>
    <p>FATAL:  Peer authentication failed for user "goodsounds"</p>
  </blockquote>
  
  <p>Here is my pg_hba.conf:</p>
  
  <pre><code># Database administrative login by Unix domain socket
  local   all             postgres                                peer
  
  # TYPE  DATABASE        USER            ADDRESS                 METHOD
  
  # "local" is for Unix domain socket connections only
  local   all             all                                     peer
  # IPv4 local connections:
  host    all             all             127.0.0.1/32            trust
  # IPv6 local connections:
  host    all             all             ::1/128                 trust
  # Allow replication connections from localhost, by a user with the
  # replication privilege.
  #local   replication     postgres                                peer
  #host    replication     postgres        127.0.0.1/32            trust
  #host    replication     postgres        ::1/128                 trust
  </code></pre>
  
  <p>Previously "trust" above was md5 but I changed to see if that would help.</p>
  
  <p>Here is my database.yml:</p>
  
  <pre><code># 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: goodsounds_development
    pool: 5
    username: goodsounds
    password: test
  
    # 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: goodsounds_test
    pool: 5
    username: goodsounds
    password: test
  
  production:
    adapter: postgresql
    encoding: unicode
    database: goodsounds_production
    pool: 5
    username: goodsounds
    password: test
  </code></pre>