2017-03-05 104 views
0

我正在嘗試使用Postgres數據庫設置我的Rails應用程序,這是我剛剛使用的。用戶的身份驗證失敗

我使用

  • 的centos 6
  • 的PostgreSQL 9.6.2
  • 的pg_hba.conf路徑=>/var/lib/pgsql/data/pg_hba.conf

我曾與sudo -u postgres psql登錄並創建用戶「X '用密碼'密碼'。以下是詳細內容

postgres=# \l 

           List of databases 

Name  | Owner  | Encoding | Collate | Ctype |  Access privileges  
--------------+--------------+----------+-------------+-------------+------------------------------- 

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 

trip_staging | X | UTF8  | en_US.UTF-8 | en_US.UTF-8 | =Tc/X    + 

     |    |   |    |    | X=CTc/X 

(4 rows) 

postgres=# \du 

       List of roles 

    Role name |       Attributes       | Member of 

--------------+------------------------------------------------------------+----------- 

X |               | {} 

postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {} 

當我運行命令: RAILS_ENV=staging bundle exec rake db:create

我得到下面的錯誤:

FATAL: Ident authentication failed for user "X" 

Couldn't create database for {"database"=>"trip_staging", "adapter"=>"postgresql", "username"=>"X", "password"=>"password", "host"=>"localhost", "port"=>5432, "pool"=>5, "timeout"=>5000} 

此後,我觀看了每一個可能的修補程序這個。我試圖改變的pg_hba.conf下面的配置:

TYPE DATABASE USER ADDRESS METHOD 
local all  all   md5 
host all  all 0.0.0.0 md5 
host all  all ::1/128 md5 

也試過,改變方法與trust,然後重新開始命令PostgreSQL服務器:sudo service postgresql-9.6 restart但同樣的錯誤。

還嘗試將路徑/var/lib/pgsql/data/pg_hba.conf的讀取權限從600更改爲755。要做到這一點,我必須以sudo su - postgres作爲postgres超級用戶登錄,這很奇怪。然後重新啓動postgresql服務器

也嘗試過,將方法從ident更改爲trust對於路徑/var/lib/pgsql/9.6/data/pg_hba.conf,顯然存在明智版本的pg_hba.conf。然後我重新啓動了PostgreSQL服務器。

到目前爲止似乎沒有任何工作。請幫助找出缺少的東西。

回答

0

在pg_hba.conf中,0.0.0.0的部分需要像這樣的0.0.0.0/32這個掩碼,在日誌中說這個問題,默認是在/var/lib/pgsql/9.6/data中的centos中/ pg_log/

+0

也試過了。感謝您的嘗試:) – cop

+0

而當你重新啓動數據庫沒有說日誌中的一些錯誤? –