2017-03-05 1 views
0

필자는 새로운 Postgres 데이터베이스로 레일즈 응용 프로그램을 설정하려고합니다.사용자에 대한 식별 인증이 실패했습니다.

제가

  • 에 CentOS 6
  • PostgreSQL을 사용하고 난 sudo -u postgres psql에 기록하고, 사용자 'X를 만들었다 = "/var/lib/pgsql/data/pg_hba.conf

9.6.2

  • 있는 pg_hba.conf 경로 '암호'암호 '. 아래는 세부 사항

    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 | {} 
    

    을 내가 실행 명령이 후

    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} 
    

    내가 각 가능한 수정을 보았다 : 나는 아래의 오류가 RAILS_ENV=staging bundle exec rake db:create

    이. trust와 방법을 변경

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

    가 또한 시도하고 PostgreSQL의 명령으로 서버 재시작 : I는 아래 구성의 변경을 위해서는 pg_hba.conf sudo service postgresql-9.6 restart 시도하지만 동일한 오류.

    /var/lib/pgsql/data/pg_hba.conf에 대한 읽기 권한을 600에서 755으로 변경해 보았습니다. 그렇게하려면 sudo su - postgres으로 postgres 수퍼 유저로 로그인해야했습니다. 이상하게 보입니다. 분명히 너무 버전 현명한 위해서는 pg_hba.conf이 존재하는 그런 경로 /var/lib/pgsql/9.6/data/pg_hba.conf에 대한 trustident에서 방법을 변경,

    는 또한 시도 PostgreSQL 서버를 다시 시작됩니다. 그런 다음 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

    그리고 당신이 데이터베이스를 다시 시작하면 로그에 오류가 발생하지 않았습니까? –

    관련 문제