Postgresql不接受密码

时间:2017-07-14 18:45:53

标签: ruby-on-rails postgresql authentication postgresql-9.3 pg

我刚刚创建了一个新应用并安装了'pg'gem,创建了一个psql用户和数据库,并创建了一个database.yml文件。但是,服务器将不接受我的密码,即使它是正确的密码。

以下是我为创建用户和数据库而运行的命令:

Project$ sudo -i -u postgres
postgres@user-F243:~$ psql
postgres=# CREATE USER Project WITH PASSWORD 'Project' CREATEDB;
postgres=# CREATE DATABASE Project OWNER Project;

所有这些都没有错误。然后我创建了以下database.yml文件:

development:
  adapter: postgresql
  database: Project
  username: Project
  password: Project
  host: localhost
  pool: 5
  timeout: 5000

test:
  adapter: postgresql
  database: Project
  username: Project
  pool: 5
  timeout: 5000

production:
  adapter: postgresql
  database: Project
  username: Project
  pool: 5
  timeout: 5000

但是当我启动rails服务器并尝试加载页面时,我收到此错误:

PG::ConnectionBad
FATAL: password authentication failed for user "Project" FATAL: password authentication failed for user "Project"

Extracted source (around line #56):

#54 ### Convenience alias for PG::Connection.new.
#55    def self::connect( *args )
#56         return PG::Connection.new( *args ) #line 56
#57    end

我尝试了多个不同的密码和用户/数据库名称,我尝试让用户成为超级用户,但我总是得到相同的结果。我已经完成了这一百万次,而且它总能奏效。发生什么事了?

2 个答案:

答案 0 :(得分:1)

postgres=# CREATE USER Project WITH PASSWORD 'Project' CREATEDB;

此代码创建用户'项目'而不是'项目'。如果你真的想在用户名中使用大写,你必须加倍引用它们:

postgres=# CREATE USER "Project" WITH PASSWORD 'Project' CREATEDB;

表和列名称也是如此 - 创建和查询它们。

答案 1 :(得分:0)

尝试从host: localhost群组中删除development:。我过去遇到过类似的问题,这些问题已经解决了。