2014-10-13 3 views
0

gdb을 사용하여 디버그하려면 postgresql 소스 코드를 배우고 싶습니다. 소스 코드에서 pg을 설치하기 전에 이미 바이너리 패키지 (기본 포트 5432 선택)로 설치했습니다.'postmaster ~/pgdata'를 사용하여 pgsql 서버를 시작하면 5432 포트가 사용 중입니다

나는 내가 응용 프로그램에서 바이너리 패키지를 제거, 그리고 소스 코드 ./configure,make,make install

에서 postgresql를 설치합니다.

이제 'postmaster'를 사용하여 전자 메일 관리자를 시작하면 5432 포트가 이미 사용 중입니다 ("IPV6, IPV4 ...."와 같은 3 가지 팁).

export PGPORT = 5431을 사용하여 기본 포트를 변경하고 'postmaster'를 사용하여 성공적으로 시작합니다.

5431(lsof -i:5431) 나는 3 개의 포스트 그레스를 표시하지만, 5432(lsof -i:5431)을 체크하면 점령되지 않는 것으로 보이는 것은 아무것도 반환하지 않습니다.

+0

'./configure를 같은라고합니다; 하다; make install' 컴파일이 기존 바이너리 패키지를 덮어 쓸 수 있습니까? 일반적으로'./configure --prefix =/my/prefix/dir'과 같은 별도의 디렉토리 트리에 넣어야합니다. 또한 별도의 데이터 디렉토리와 config/startup 파일을 사용하십시오. – joop

+0

바이너리 패키지를 어떻게 제거 했습니까? 서버를 제거하기 전에 서버를 중지 했습니까? –

+0

응용 프로그램 파일에서 제거하십시오. – YOung

답변

0

또한 PostgreSQL은 유닉스 소켓 (일반적으로/tmp 또는/var/run/postgresql 또는 이와 유사한 것)을 만듭니다. 그것은 lsof -i으로 나타나지 않지만 물론 충돌합니다.


파일은 일반적으로 .s.PGSQL.5432

+0

바이너리 패키지가 설치 한 이전 PostgreSQL에서 만든 유닉스 소켓입니까? 그것이 있다면, 나는 이미이 mac.It에서 그것을 삭제하기 때문에 일부 파일을 남겨 둡니다 (나는/var/run에 "port.socket"이라는 파일 하나를 찾습니다)? thx .... – YOung

+0

편집을 참조하십시오. 이전 바이너리가 계속 실행 중입니다. –

+0

이 .s.PGSQL.5432 파일이/private/tmp에 있으며 삭제했다. 그러나 "pg_ctl start -D/usr/local/pgsql/data /"를 사용하면 경고 메시지가 나타납니다 (다른 포스트 마스터가 이미 포트 5432에서 실행 중입니까?). – YOung

관련 문제