为rails设置postgres用户,角色和数据库

时间:2013-11-12 10:13:10

标签: ruby-on-rails ruby-on-rails-4 postgresql-9.1 rails-postgresql pg

这真的让我陷入困境,我有点像尝试使用postgres for rails 4的菜鸟

我安装了postgres:

$ psql --version
psql (PostgreSQL) 9.1.10
contains support for command-line editing

$ sudo apt-get install libpq-dev工作正常

我的gemfile中有gem 'pg'

我的config/database.yml看起来像这样:

development:
  adapter: postgresql
  encoding: unicode
  database: myafricastyle_development
  host: localhost
  pool: 5
  username: myafricastyle
  password: myafricastyle

创建数据库:$ sudo -u postgres createdb myafricastyle_development

以下是数据库:

$ psql
psql (9.1.10)
Type "help" for help.

jasonshark=# \l
                                           List of databases
           Name            |   Owner    | Encoding |   Collate   |    Ctype    |   Access privileges   
---------------------------+------------+----------+-------------+-------------+-----------------------
 jasonshark                | jasonshark | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 myafricastyle_development | postgres   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres                  | postgres   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0                 | postgres   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                           |            |          |             |             | postgres=CTc/postgres
 template1                 | postgres   | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
                           |            |          |             |             | postgres=CTc/postgres
(5 rows)

但是当我尝试在rails项目目录中设置它时,我得到了这个:

$ rake db:create:all
FATAL:  password authentication failed for user "myafricastyle"
FATAL:  password authentication failed for user "myafricastyle"

修改 这是我的pg_hba.conf文件:

local   all             postgres                                md5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     md5
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                md5
#host    replication     postgres        127.0.0.1/32            md5
#host    replication     postgres        ::1/128                 md5

虽然当我进行编辑时,我做了sudo gedit pg_hba.conf所以文件夹看起来有点时髦:

/etc/postgresql/9.1/main$ ls
environment  pg_hba.conf   pg_ident.conf    start.conf
pg_ctl.conf  pg_hba.conf~  postgresql.conf

我可以改变什么?

1 个答案:

答案 0 :(得分:0)

您需要创建用户:

sudo -u postgres createuser myafricastyle

创建用户后,您还需要编辑pg_hba.conf文件,如下所示:

http://www.postgresql.org/docs/9.1/static/auth-pg-hba-conf.html