
우리는 1개의 데이터베이스, Domain-unix 소켓을 소유하고 비밀번호가 없는 1개의 역할만 원합니다.
postgres@luciol-essai:~$ more /etc/postgresql/8.4/main/pg_hba.conf | grep jppstphp
local essais_php jppstphp trust
postgres@luciol-essai:~$
psql의 성공 :
envol@luciol-essai:~$ psql -U jppstphp essais_php
psql (8.4.15)
essais_php=>
pgadmin3 실패:
이것은 오류입니다.
Error connecting to the server: FATAL: authentification Ident ?chou?e pour l'utilisateur << jppstphp >>
답변1
localhost
PgAdmin-III에는 또는 에 연결하라는 지시가 전달 127.0.0.1
되어 TCP/IP를 사용하고 있는 반면 psql에는 호스트 사양이 제공되지 않아 UNIX 소켓( )을 사용하고 있는 것 같습니다 local
.
pgadmin3의 호스트 이름 필드를 비워 pg_hba.conf
두거나 host essais_php jppstphp 127.0.0.1/32 trust
.
답변2
전체 파일을 확인해야 하며 pg_hba.conf
지시문의 순서가 중요합니다. 나는 당신이 기본 줄을 유지했다고 생각합니다.
local all all ident
이 줄이 about 줄 앞에 있는 경우 jppstphp
postgresql 서버는 먼저 UNIX 사용자 이름에서 사용자를 식별하려고 시도합니다 envol
. postgres user/role 로 연결을 시도하기 때문에 실패합니다 jppstphp
.
내 가정이 맞다면 위의 줄(및 md5
비밀번호 인증과 유사한 항목) 을 제거하거나 jppstphp
로컬 소켓을 통해 연결할 수 있도록 하기 전에 줄을 배치하십시오.
로컬 소켓을 통해 연결하려면 호스트 필드를 공백으로 남겨두기만 하면 됩니다.
답변3
명령줄 연결을 통해 psql을 사용하고 pgAdmin이 AWS와 RDS에 연결하지 않는 것과 동일한 문제가 있었습니다. 내 RDS를 공개적으로 액세스 가능으로 설정했습니다. 내 ACL 및 보안 그룹이 널리 열려 있고 여전히 문제가 있는지 확인하여 다음을 수행했습니다.
sudo find . -name *.conf
그런 sudo nano ./data/pg_hba.conf
다음 pg_hba.conf 파일의 지시문 맨 위에 추가하고 host all all 0.0.0.0/0 md5
pgAdmin이 자동으로 로그인했습니다.
참고로 내 RDS는 기본 VPC에 있었습니다. 기본이 아닌 VPC에 기본 VPC와 동일한 보안 그룹, ACL 및 보안 그룹 설정을 가진 동일한 RDS 인스턴스가 있었는데 작동하지 못했습니다. 이유는 모르겠지만, 그건 또 다른 날입니다.