필자는 새로운 Postgres 데이터베이스로 레일즈 응용 프로그램을 설정하려고합니다.사용자에 대한 식별 인증이 실패했습니다.
제가
- 에 CentOS 6
- PostgreSQL을 사용하고 난
sudo -u postgres psql
에 기록하고, 사용자 'X를 만들었다 = "/var/lib/pgsql/data/pg_hba.conf
9.6.2
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
에 대한 trust
에 ident
에서 방법을 변경,
는 또한 시도 PostgreSQL 서버를 다시 시작됩니다. 그런 다음 PostgreSQL 서버를 다시 시작했습니다.
지금까지 아무 것도 작동하지 않은 것 같습니다. 누락 된 부분을 찾으십시오.
시도해 보았습니다. 노력해 주셔서 감사합니다 :) – cop
그리고 당신이 데이터베이스를 다시 시작하면 로그에 오류가 발생하지 않았습니까? –