> 기타 외부 패키지 > psql

psql: PostgreSQL 대화형 터미널

psql은 PostgreSQL 데이터베이스에 접속하여 SQL 쿼리를 실행하고, 데이터베이스 객체를 관리하며, 메타데이터를 조회할 수 있는 명령줄 클라이언트 도구입니다. 대화형 모드와 스크립트 실행 모드를 모두 지원합니다.

개요

psql은 PostgreSQL 데이터베이스와 상호작용하기 위한 강력한 도구입니다. SQL 명령뿐만 아니라, 데이터베이스 관리 작업을 간소화하는 다양한 메타 명령(백슬래시 명령)을 제공합니다.

주요 기능

  • SQL 쿼리 실행
  • 데이터베이스 및 테이블 관리
  • 사용자 및 권한 설정
  • 스크립트 파일 실행
  • 대화형 셸 환경 제공

주요 옵션

psql 명령줄에서 사용할 수 있는 주요 옵션들입니다.

접속 옵션

명령 실행 옵션

생성된 명령어:

명령어를 조합해 보세요.

설명:

`psql` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

psql 명령의 다양한 사용 예시입니다.

기본 데이터베이스 접속

psql

기본 사용자(현재 시스템 사용자)로 기본 데이터베이스에 접속합니다.

특정 데이터베이스 및 사용자로 접속

psql -U myuser -d mydb -W

myuser 사용자로 mydb 데이터베이스에 접속합니다. 비밀번호를 입력하라는 프롬프트가 나타납니다.

원격 서버에 접속

psql -h db.example.com -p 5432 -U postgres

원격 호스트(db.example.com)의 5432 포트에 postgres 사용자로 접속합니다.

단일 SQL 명령 실행

psql -U postgres -d postgres -c "SELECT version();"

데이터베이스 버전을 조회하는 SQL 명령을 실행하고 psql을 종료합니다.

SQL 스크립트 파일 실행

psql -U postgres -d mydb -f script.sql

script.sql 파일에 있는 SQL 명령들을 실행합니다.

데이터베이스 목록 조회

psql -l

현재 PostgreSQL 서버에 있는 모든 데이터베이스 목록을 표시합니다.

설치

psql은 PostgreSQL 클라이언트 패키지의 일부로 제공됩니다. 대부분의 리눅스 배포판에서는 PostgreSQL 서버를 설치하지 않고 클라이언트 도구만 별도로 설치할 수 있습니다.

Debian/Ubuntu

sudo apt update
sudo apt install postgresql-client

apt 패키지 관리자를 사용하여 PostgreSQL 클라이언트 도구를 설치합니다.

RHEL/CentOS/Fedora

sudo dnf install postgresql

yum 또는 dnf 패키지 관리자를 사용하여 PostgreSQL 클라이언트 도구를 설치합니다.

팁 & 주의사항

psql을 더욱 효율적으로 사용하기 위한 팁과 주의사항입니다.

주요 psql 메타 명령

psql 셸 내에서 백슬래시(\)로 시작하는 명령어를 사용하여 다양한 작업을 수행할 수 있습니다.

  • \l: 모든 데이터베이스 목록 표시
  • \dt: 현재 데이터베이스의 테이블 목록 표시
  • \du: 모든 사용자(역할) 목록 표시
  • \d <table>: 특정 테이블의 스키마 정보 표시
  • \q: psql 종료
  • \?: 모든 메타 명령에 대한 도움말 표시

환경 변수 활용

자주 사용하는 접속 정보를 환경 변수로 설정하여 psql 명령을 간소화할 수 있습니다.

  • PGHOST: 호스트 이름 또는 IP 주소
  • PGPORT: 포트 번호
  • PGUSER: 사용자 이름
  • PGDATABASE: 데이터베이스 이름
  • PGPASSWORD: 비밀번호 (보안상 권장되지 않음, .pgpass 파일 사용 권장)

.pgpass 파일

비밀번호를 명령줄이나 환경 변수에 노출하지 않고 안전하게 저장하려면 ~/.pgpass 파일을 사용하는 것이 좋습니다. 이 파일은 특정 호스트, 포트, 데이터베이스, 사용자 이름에 대한 비밀번호를 저장하여 psql이 자동으로 인증할 수 있도록 합니다.


동일 카테고리 명령어