psql을 localhost로 기본 설정하는 방법은 무엇입니까?


10

다음과 같은 시나리오가 있습니다.

saji@geeklap:~$ psql -U postgres
psql: FATAL:  Ident authentication failed for user "postgres"

saji@geeklap:~$ psql -h localhost -U postgres
Password for user postgres: 
psql (8.4.14)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=# 

postgresql시스템에 설치된 서버에 user 로 로그인하려고합니다 postgres. 내가 지정한 경우에만 로그인 할 수 -h localhost있습니다. 반면 psql설명서를 말한다 :

호스트 이름을 생략하면 psql은 Unix 도메인 소켓을 통해 로컬 호스트의 서버에 연결하거나 TCP / IP를 통해 Unix 도메인 소켓이없는 시스템의 로컬 호스트에 연결합니다.

참조 : http://www.postgresql.org/docs/current/static/app-psql.html#R2-APP-PSQL-CON

호스트를 지정하지 않고 로그인 할 수없는 이유는 무엇 psql입니까? 설명서 에 나와있는대로 변경해야 할 구성 파일이 있습니까?


.psqlrc기본값을 지정하는를 작성 하거나 (유닉스 소켓) 연결에 대한 인증 pg_hba.conf을 사용하도록 편집하십시오 . 및 의 설명서를 참조하십시오 . md5localpg_hba.confpsql
Craig Ringer

답변:


7

실제로, 그것은 문서화 된대로 작동합니다.

호스트 이름을 생략하면 psql경로가 컴파일 된 Unix 도메인 소켓에 연결됩니다. 해당 부분은 귀하의 경우에는 작동하며, 그렇지 않으면 질문에 표시된 것과 다른 오류 메시지가 출력됩니다.

질문의 오류 메시지 :

psql: FATAL:  Ident authentication failed for user "postgres"

Unix 도메인 소켓을 사용할 때 Unix 사용자 postgres만이 데이터베이스 사용자 postgres로 연결할 수있는 권한이 있다는 사실과 관련됩니다. 이것은 pg_hba.conf파일 에서 구성 됩니다.

일반 사용자로 로그인했지만 시스템 관리자 인 경우 일반적으로 Ubuntu에서 수행 할 작업 :

$ sudo -u postgres psql

1
감사합니다 .. 변경하십시오 sudo -u postgresql psqlsudo -u postgres psql. 편집하려고했습니다. 그러나 편집에는 6 자 미만의 문자 만 있으므로 불가능했습니다.
saji89

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.