2017-07-14 15 views
0

新しいアプリを作成し、 'pg'宝石をインストールし、psqlユーザとデータベースを作成し、database.ymlファイルを作成しました。ただし、サーバーは正しいパスワードでもパスワードを受け付けません。Postgresqlはパスワードを受け付けません

Project$ sudo -i -u postgres 
[email protected]:~$ psql 
postgres=# CREATE USER Project WITH PASSWORD 'Project' CREATEDB; 
postgres=# CREATE DATABASE Project OWNER Project; 

すべてがエラーなしで通過した:

は、ここで私は私のユーザーとデータベースを作成するために走ったコマンドです。

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 

しかし、私は私のレールのサーバを起動し、ページをロードしようとすると、私はこのエラーを取得:それから私は、次のdatabase.ymlのファイル作成私は、複数の異なるパスワードを試してみました

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

小文字のユーザー名を試すことはできますか? PostgresSQLで大文字のユーザ名を使用するのは難しいです。あなたは名前を引用せず、実際には "Project"ではなく "project"というユーザを作成しました。 –

+0

@TomaszMyrta Wooow、そうだね。ありがとう。大事なケースは決して推測できませんでした。 –

+0

'pg_hba.conf'ファイルでそのユーザに割り当てられた認証方法は何ですか? – Nicarus

答えて

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

このコードは、「プロジェクト」ではなく「プロジェクト」というユーザーを作成します。あなたが本当にユーザー名に大文字を使用する場合は、それらを引用倍増する必要があります。

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

同じテーブル名とカラム名を行く - それらの両方を作成し、照会。

+0

それは狂っている、私は彼らがそれほど厄介であれば大文字小文字の何かを含めると思っただろう。ありがとう! –

+0

詳細は、SQL構文/レキシカル構造/識別子とキーワードを参照してください。 –

0

development:グループからhost: localhostを削除してみます。私は過去に同様の問題を抱えていました。

関連する問題