我刚刚创建了一个新应用并安装了'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
我尝试了多个不同的密码和用户/数据库名称,我尝试让用户成为超级用户,但我总是得到相同的结果。我已经完成了这一百万次,而且它总能奏效。发生什么事了?
答案 0 :(得分:1)
postgres=# CREATE USER Project WITH PASSWORD 'Project' CREATEDB;
此代码创建用户'项目'而不是'项目'。如果你真的想在用户名中使用大写,你必须加倍引用它们:
postgres=# CREATE USER "Project" WITH PASSWORD 'Project' CREATEDB;
表和列名称也是如此 - 创建和查询它们。
答案 1 :(得分:0)
尝试从host: localhost
群组中删除development:
。我过去遇到过类似的问题,这些问题已经解决了。