명령어/DB

[PostgreSQL] psql 터미널에서 DB에 접속한다

jykim23 2026. 7. 30. 22:12
반응형

설치·접속: PostgreSQL 설치와 접속

부제: PostgreSQL 공식 대화형 클라이언트로 접속하고 한 줄 쿼리를 던진다

psql -h localhost -U postgres -d shop   # 호스트/유저/DB 지정 접속
psql -d shop -c 'SELECT id, name FROM users LIMIT 3;'  # 한 줄 실행 후 종료
psql -d shop -c '\conninfo'             # 지금 어디에 붙었는지 확인
 id | name  |   email
----+-------+-----------
  1 | user1 | u1@ex.com
  2 | user2 | u2@ex.com
  3 | user3 | u3@ex.com
(3 rows)

You are connected to database "shop" as user "postgres" via socket in "/var/run/postgresql" at port "5432".

psql은 PostgreSQL에 기본으로 딸려오는 터미널 클라이언트다. 옵션 없이 실행하면 대화형 셸로 들어가 쿼리를 계속 입력할 수 있고, -c를 붙이면 명령 하나만 실행하고 바로 빠져나온다. 스크립트나 크론에서 쓰기 좋은 형태다. 접속 대상은 -h(호스트) -U(유저) -d(DB) -p(포트)로 지정하며, 로컬 유닉스 소켓이면 호스트를 생략해도 붙는다.

이렇게도 쓴다

접속 정보를 매번 타이핑하지 않도록 환경변수로 넘긴다.

PGPASSWORD=pw psql -h db.example.com -U app -d shop

 

값만 뽑아서 셸 변수로 받는다. (-A 정렬 해제 + -t 헤더 제거)

psql -d shop -At -c 'SELECT name FROM users ORDER BY id LIMIT 3'

 

여러 명령을 한 번의 접속으로 이어서 실행한다.

psql -d shop -c '\timing on' -c 'SELECT count(*) FROM orders;'

 

SQL 파일을 통째로 실행하고 결과만 받는다.

psql -d shop -f report.sql

 

접속만 확인하고 끊는 헬스체크로 쓴다. (조합: exit code로 판정)

psql -d shop -c 'SELECT 1' >/dev/null 2>&1 && echo UP || echo DOWN
반응형