在rails中配置postgresql

时间:2016-03-26 23:23:33

标签: ruby-on-rails postgresql

我正和朋友一起做项目。我从bitbucket克隆了应用程序。除了postgresql(v9.3.7)之外,一切都很好。它不断给我以下信息。

psql: FATAL:  password authentication failed for user "ubuntu"
FATAL:  password authentication failed for user "ubuntu"

我创建了一个超级用户以及所有数据库。下面给出了指定用户和所有数据库的列表。

ubuntu=# \du
                             List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 divjot    | Superuser                                      | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}
 ubuntu    | Superuser, Create role, Create DB              | {}

 List of databases
      Name       |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------------+----------+-----------+---------+-------+-----------------------
 app_development | ubuntu   | SQL_ASCII | C       | C     | 
 app_production  | ubuntu   | SQL_ASCII | C       | C     | 
 app_test        | ubuntu   | SQL_ASCII | C       | C     | 
 postgres        | postgres | SQL_ASCII | C       | C     | 
 template0       | postgres | SQL_ASCII | C       | C     | =c/postgres          +
                 |          |           |         |       | postgres=CTc/postgres
 template1       | postgres | SQL_ASCII | C       | C     | =c/postgres          +
                 |          |           |         |       | postgres=CTc/postgres
 ubuntu          | ubuntu   | SQL_ASCII | C       | C     | 

我一直在使用rails中的postgresql配置。我完全遵循文档,但是,每次尝试克隆应用程序或移动代码时,我总会遇到问题。我不知道为什么我会收到这个错误。任何有关这方面的帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

免责声明:我不是pgsql的专家。但我已成功在多个版本和环境中设置pg / rails。这就是我的建议。

  • 找到pg_hba.conf文件。由于您显然使用的是Ubuntu,请尝试

    cd /
    find . -name pg_hba.conf -print 2> /dev/null

这会搜索整个磁盘,这需要一段时间。但最终它将提供路径。如果它产生多个,你将必须解决哪一个是正确的。

如果您知道PG的安装位置,cd而不是root。

现在

  • 验证用户ubuntu的身份验证方法是password还是md5Here是相关的文档页面。如果您只对本地开发感兴趣,可以将password更改为trust。但如果这是用于生产,这是一个坏主意。

  • 登录pg命令行后,运行
    ALTER USER ubuntu PASSWORD 'newpassword';
    确保密码符合您的预期。

  • 您应该发布database.yamlENV['DATABASE_URL']个设置。通常,database.yaml需要精确匹配pg所期望的内容。

例如:

development:
  adapter: postgresql
  encoding: unicode
  database: app_development
  pool: 5
  username: ubuntu
  password: <your password>
  allow_concurrency: true

警告:如果您没有完全控制回购,请不要将生产密码提交到您的回购或甚至是开发密码。