2013-02-13 2 views
5

로컬 컴퓨터에 Postgres가 설치되어 있습니다. 내가psql : FATAL : 역할 "postgres"가 존재하지 않습니다 (-h localhost 옵션 사용)

psql -U postgres -d buzzsumo 

을 실행하면

올바르게 사용자 포스트 그레스에 비밀번호를 요청합니다.

psql의 : FATAL : 역할 "포스트 그레스는"왜 이것을이다

존재하지 않는 내가

psql -U postgres -d buzzsumo -h localhost 

을 실행 그것은 나에게이 오류 메시지를 제공하지만

, 첫 번째 예에서 로컬 서버에 연결할 때 localhost를 전달하는 것과 같습니다.

답변

2

당신은 말하지 않지만 나는 MacOS 또는 Linux에서 포스트그레스를 실행하고 있다고 생각합니다.

첫 번째 양식 (-h 없음)은 "유닉스 소켓"을 통해 연결됩니다. 두 번째 형식은 "-h localhost"를 사용하여 TCP/IP를 통해 로컬 호스트 (IP 주소 127.0.0.1)에 연결합니다.

Postgres는 이러한 두 가지 유형의 연결을 다르게 처리합니다. 또는 적어도 그렇게 할 수 있습니다. "pgsql/data/pg_hba.conf"파일을 검사하여 두 가지 유형의 연결에 대해 구성된 인증 메커니즘을 확인하십시오.

2

첫 번째 예는 유닉스 소켓을 통해 연결하고, 두 번째 예는 TCP/IP 로컬 루프 (localhost)를 통해 연결합니다.

첫 번째 예에서는 연결 유형 localpg_hba.conf이고 두 번째 줄은 host으로 시작해야합니다. 이러한 연결 클래스에 대해 서로 다른 authentication methods을 정의했을 수 있습니다.

관련 문제