문서의 이전 판입니다!
psql
PostgreSQL interactive terminal이다. 대화형 SQL 실행, 스크립트 실행, 메타 커맨드 기반 점검에 가장 자주 쓰이는 기본 클라이언트다.
Summary
- 데이터베이스에 접속해 SQL과
\d,\l같은 meta command를 실행한다. -c로 단발성 SQL 실행,-f로 스크립트 실행,-X로 사용자 설정 파일 배제를 제어할 수 있다.- plain SQL dump 복원은 보통
psql -f backup.sql형태로 처리한다.
Usage
psql [OPTION]... [DBNAME [USERNAME]] psql -d appdb psql -h 127.0.0.1 -p 5432 -U postgres -d appdb psql -c 'SELECT now();' -d postgres psql -f schema.sql -d appdb
psql [<switches>…] [DBNAME [USERNAME]]psql -d DBNAME대상 데이터베이스 지정psql -h HOST -p PORT -U USER원격 접속 정보 지정psql -c COMMAND단일 SQL 또는 internal command 실행 후 종료psql -f FILE.sql스크립트 파일 실행
Options
-c,–commandSQL 또는 internal command 한 번 실행 후 종료-d,–dbname접속할 데이터베이스 지정-f,–file파일에서 SQL 읽기-l,–list데이터베이스 목록 조회 후 종료-v,–set,–variablepsql 변수 설정. 예:-v ON_ERROR_STOP=1-X,–no-psqlrc~/.psqlrc를 읽지 않음-1,–single-transaction비대화형 실행을 단일 transaction으로 묶음-A,–no-alignunaligned 출력-t,–tuples-only결과 행만 출력-x,–expandedexpanded output-h,–host서버 호스트 또는 socket directory-p,–port서버 포트-U,–username접속 사용자-w,–no-password비밀번호 프롬프트 비활성화-W,–password비밀번호 프롬프트 강제
Examples
# 로컬 소켓으로 기본 사용자/DB 조합 접속 psql # 특정 데이터베이스 접속 psql -d appdb # 원격 서버 접속 psql -h 127.0.0.1 -p 5432 -U postgres -d appdb # SQL 한 줄만 실행 psql -d appdb -c 'SELECT current_database(), current_user;' # 에러 발생 시 즉시 중단하도록 스크립트 실행 psql -X -v ON_ERROR_STOP=1 -d appdb -f ./schema.sql # plain SQL dump 복원 psql -X -v ON_ERROR_STOP=1 -d appdb -f ./backup.sql
Troubleshooting
- 접속 실패 시
PGHOST,PGPORT,PGUSER,PGDATABASE환경 변수와 CLI 옵션 충돌 여부를 함께 확인한다. - automation에서는
-X와-v ON_ERROR_STOP=1조합을 쓰면 사용자별.psqlrc영향과 중간 실패 누락을 줄일 수 있다. peer authentication failed가 나오면 Unix socket 접속과pg_hba.conf정책을 먼저 확인한다.- 대화형 세션에서 object 탐색은
\dt,\dv,\du,\dn,\dx가 빠르다.
Internal Commands
\l데이터베이스 목록\c DBNAME데이터베이스 전환\dt테이블 목록\d NAMEobject 상세\durole 목록\dnschema 목록\i FILE.sql스크립트 실행\o FILE결과를 파일로 저장\q종료
pg_dump의 plain format 출력은 보통 pg_restore가 아니라 psql로 복원한다. 반대로 custom, directory, tar format archive는 pg_restore로 다루는 편이 일반적이다.
Compatibility
- 이 페이지의 도움말은 로컬 설치된 PostgreSQL client 기준으로 정리했다.
- 현재 환경의
psql –help에는 기본 DB와 기본 사용자 예시가master로 보인다. 다른 시스템에서는 현재 OS 사용자명이나 배포판 설정에 따라 값이 다를 수 있다.
Help
See Also
History
- codex:: 2026-06-22 Reorganized psql into a structured CLI reference with connection, scripting, and restore workflow notes.