pg_config
확장 프로그램 및 클라이언트 프로그램이 PostgreSQL을 컴파일하고 링크하는 데 도움이되는 칭찬 정보입니다. 머신의 활성 PostgreSQL 인스턴스에 대해서는 아무것도 모르지만 바이너리 만 알 수 있습니다.
pg_hba.conf
Pg 설치 방법에 따라 다른 많은 곳에 나타날 수 있습니다. 표준 위치는 pg_hba.conf
내에서 data_directory
(에서 할 수있는 데이터베이스의 /home
, /var/lib/pgsql
, /var/lib/postgresql/[version]/
, /opt/postgres/
그들이 원하는 위치하지만, 사용자와 배포자를 넣을 수 있습니다, 등 등 등). 운수 나쁘게.
유효한 유일한 방법 pg_hba.conf
은 실행중인 PostgreSQL 인스턴스가 어디에 있는지 pg_hba.conf
물어 보거나 sysadmin에게 어디에 있는지 물어 보는 것입니다. postgresql.conf
init 스크립트가 -c hba_file=/some/other/path
Pg를 시작할 때 와 같은 매개 변수를 전달할 수 있기 때문에 datadir의 위치를 묻고 파싱하는 것에 의존 할 수도 없습니다 .
당신이하고 싶은 일은 PostgreSQL에게 묻는 것입니다 :
SHOW hba_file;
이 명령은 수퍼 유저 세션에서 실행해야하므로 쉘 스크립팅의 경우 다음과 같이 작성할 수 있습니다.
psql -t -P format=unaligned -c 'show hba_file';
환경 변수를 설정 PGUSER
, PGDATABASE
등 연결이 잘 있는지 확인합니다.
사용자가 (편집을 속이고 후, 말 연결할 수없는 경우 예,이 점에서 다소 닭이 먼저 냐 달걀이 먼저 냐의 문제이다 pg_hba.conf
) 당신이 찾을 수 없습니다 pg_hba.conf
를 해결하기 위해.
또 다른 옵션은 ps
명령의 출력을보고 포스트 마스터 데이터 디렉토리 인수 -D
가 표시 되는지 확인하는 것입니다.
ps aux | grep 'postgres *-D'
왜냐하면 pg_hba.conf
데비안 / 우분투 또는 파생 제품을 사용하지 않고 패키지를 사용하지 않는 한 데이터 디렉토리 안에 있기 때문 입니다.
데비안 / 우분투 패키지에서 PostgreSQL이 설치된 우분투 시스템을 대상으로한다면 좀 더 쉬워집니다. 누군가가 initdb
자신의 홈 디렉토리에 datada 또는 / opt 등에 EnterpriseDB Pg를 설치하는 소스 컴파일 된 소스 Pg를 다룰 필요가 없습니다 . pg_wrapper
Debian / Ubuntu 다중 버전 Pg를 요청할 수 있습니다. 여기서 PostgreSQL은의 명령 을 사용 합니다pg_lsclusters
pg_wrapper
.
연결할 수없는 경우 (Pg가 실행 중이 아니거나 pg_hba.conf
연결 을 위해 편집해야하는 경우) 시스템에서 pg_hba.conf
파일 을 검색해야 합니다. Mac과 Linux sudo find / -type f -name pg_hba.conf
에서는 그렇게 할 것입니다. 그런 다음 PG_VERSION
동일한 디렉토리에서 파일을 확인하여 PostgreSQL 버전이 둘 이상 있는지 확인하십시오. (경우 pg_hba.conf
에 /etc
/이 무시 대신 상위 디렉토리 이름입니다). 동일한 PostgreSQL 버전에 대해 하나 이상의 데이터 디렉토리가있는 경우 데이터베이스 크기를 살펴 봐야합니다. 실행중인 postgres의 명령 행 ps
에서 데이터 디렉토리 -D
인수가 편집중인 위치 등과 일치하는지 확인하십시오.