HOWTO · PostgreSQL
PostgreSQL 기본 포트
이 문서는 올바른 PostgreSQL 기본 포트를 파악하는 동안 사용자가 가질 수 있는 모든 혼란을 해결하고 표시될 수 있는 오류를 탐색하는 데 도움을 줍니다.
이 페이지의 내용
PostgreSQL의 기본 포트는 5432입니다. 이 값은 PostgreSQL 클라이언트와 서버 설정에서 사용하는 기본값입니다. 하지만 컴퓨터에서 서버가 실행 중인지, 해당 포트에서 대기 중인지, 또는 클라이언트에서 연결할 수 있는지를 보장하지는 않습니다. 패키지, 관리자 또는 배포 환경에 따라 다른 포트가 설정될 수 있습니다.
PostgreSQL의 기본 포트란 무엇인가요?
포트 5432는 TCP/IP를 통한 PostgreSQL 연결의 일반적인 기본값입니다. 클라이언트가 연결하려면 서버의 호스트와 포트, 그리고 유효한 데이터베이스 및 역할 인증 정보가 필요합니다. localhost는 클라이언트와 같은 컴퓨터를 뜻하므로 서버가 로컬에 있을 때만 사용하세요. 데이터베이스 이름, 역할, 비밀번호, 호스트는 설치 환경마다 다르며, 어디서나 통하는 테스트 계정은 없습니다.
포트는 호스트의 네트워크 끝점을 식별합니다. 이는 TCP 호스트와 포트 조합이 아니라 로컬 파일 시스템 경로로 연결하는 Unix 도메인 소켓과 다릅니다. 두 연결 방식은 같은 컴퓨터에서 사용하더라도 서로 다른 PostgreSQL 인스턴스에 연결될 수 있습니다.
어떤 PostgreSQL 인스턴스가 대기 중인지 확인하기
확인하려는 인스턴스에 연결한 다음, 해당 인스턴스에 정체와 설정을 조회하세요. psql 세션에서 SELECT version();, SHOW data_directory;, SHOW config_file;, SHOW port;를 실행합니다. 결과에는 서버 버전, 데이터 디렉터리, 서버가 읽는 설정 파일, 설정된 포트가 표시됩니다. 서버가 보고하는 값이므로 여러 인스턴스가 설치되어 있거나 실행 중일 때 각각을 구별하는 데 도움이 됩니다.
클라이언트 프로그램과 서버는 별개입니다. PATH에서 psql 실행 파일을 찾았다고 해서 어느 서버에 연결되는지 확인된 것은 아닙니다. 명령이 예상과 다른 인스턴스에 연결된다면 셸에서 어떤 psql 실행 파일을 선택하는지 확인하고, 의도한 호스트와 포트를 명시하세요. Unix 계열 시스템에서는 -h를 생략하면 로컬 소켓을 선택할 수 있고, -h localhost를 지정하면 TCP 연결을 요청합니다. 소켓 디렉터리는 선택한 서버의 unix_socket_directories 설정으로 정해집니다.
특정 포트로 PostgreSQL에 연결하기
로컬 서버에는 psql -h localhost -p 5432 -U your_role -d your_database를 사용하세요. 역할과 데이터베이스 자리표시자는 해당 인스턴스에 설정된 값으로 바꾸면 됩니다. 5433처럼 다른 포트가 설정되어 있는지 확인하려면 -p 뒤의 값을 바꾸세요. 이 예시는 해당 포트에 다른 서버가 있다는 뜻이 아닙니다. 원격 서버에 연결할 때는 localhost를 호스트 이름이나 주소로 바꾸고, 서버가 클라이언트의 연결을 허용하도록 설정되어 있는지 확인하세요.
다음 Python 코드는 로컬 서버의 기본 포트에 연결하는 클라이언트 명령을 구성합니다. 명령을 화면에 표시할 뿐 psql을 시작하거나 데이터베이스에 연결하지는 않습니다. 클라이언트가 설치되어 있고 연결 정보가 서버와 일치하는지 확인한 뒤 표시된 명령을 셸에서 실행하세요.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
import shlex
host = "localhost"
port = 5432
database = "my_database"
role = "my_role"
command = ["psql", "-h", host, "-p", str(port), "-U", role, "-d", database]
print(shlex.join(command))
PostgreSQL의 수신 포트 변경하기
먼저 의도한 인스턴스에 연결하고 SHOW config_file;을 실행해 실제로 사용 중인 설정 파일을 찾으세요. 해당 파일에서 port 설정을 확인합니다. 패키지에 따라 파일 경로가 다르므로 운영체제만 보고 경로를 단정하지 마세요. 원하는 포트 값을 설정한 다음 해당 PostgreSQL 인스턴스를 재시작해야 수신 포트 변경이 적용됩니다. 재시작 방법은 서비스 관리자나 배포 안내를 확인하세요.
재시작한 뒤 새 포트로 psql을 연결하고 SHOW port;를 실행해 서버에 설정된 값을 확인하세요. 다른 프로세스가 선택한 포트를 이미 사용 중이면 PostgreSQL이 해당 포트에 바인딩하지 못해 대기 상태로 시작하지 못할 수 있습니다. 비어 있는 포트를 선택하거나 충돌을 해결한 다음 서버 시작 로그에서 구체적인 오류를 확인하세요. 설치 프로그램이 자동으로 대체 포트를 선택한다고 가정하지 마세요.
PostgreSQL 포트 및 연결 문제 해결하기
연결에 실패하거나 엉뚱한 서버에 연결되면 다음 항목을 순서대로 확인하세요.
- 호스트와 포트: 클라이언트가 의도한 호스트와 해당 서버에 설정된 포트를 사용하는지 확인하세요. 5432는 기본값일 뿐이며 배포 환경에서는 다른 값을 사용할 수 있습니다.
- 인스턴스 확인: 연결은 되지만 예상과 다른 데이터가 보인다면 해당 세션에서
SELECT version();,SHOW data_directory;,SHOW port;를 실행하세요. 결과를 의도한 인스턴스의 정보와 비교합니다. - 연결 방식: 클라이언트가 TCP/IP와 로컬 소켓 중 무엇을 사용하는지 확인하세요. 로컬 컴퓨터에서 TCP를 요청하려면
-h localhost를 사용하고, 소켓 연결이라면 선택한 인스턴스의 소켓 디렉터리를 확인하세요. - 대기 및 접근 설정: 서버가 실행 중인지, 선택한 포트에 바인딩할 수 있는지, 요청한 네트워크 인터페이스의 연결을 허용하도록 설정되어 있는지 확인하세요. 원격 접속 가능 여부는 서버 접근 규칙과 네트워크 제어 설정에도 영향을 받습니다.
- 클라이언트와 서버 정보: 선택된
psql클라이언트가 의도한 것인지 확인하고, 해당 인스턴스에 설정된 데이터베이스, 역할, 인증 정보를 제공하세요.
포트를 점유한 프로세스를 찾는 운영체제 명령은 환경마다 다르므로 플랫폼에 맞게 문서화된 리스너 검사 도구를 사용하세요. 검사 결과로 프로세스를 식별할 수 있지만, 위의 SQL 조회도 어떤 PostgreSQL 인스턴스가 연결을 수락했는지 확인하는 데 유용합니다.