■ PSQL 접속 환경 구축 및 기본 명령어(Ubuntu 22.04 LTS에서 apt로 설치된 환경)
▶ psql - PostgreSQL interactive terminal.
: PostgreSQL 관리를 위한 커멘드 라인 기반 도구입니다. 오라클의 sqlplus, mariadb mysql과 같다고 보시면 됩니다.
1. psql 접속 하기
1) posgres(데이터베이스 관리용 OS계정)계정 에서 psql 접속(OS관리용 계정과 데이터베이스 관리용 계정명은 postgres로 동일합니다.)
- sudo 명령으로 postgres 접속
eddy@raonyn:~$ sudo -i -u postgres postgres@raonyn:~$ |
※ 참고 : sudo로 명령어 실행시 아래와 같은 오류 메시지 발생 하는 경우
sudo: unable to resolve host ... ... => /etc/hostname 과 /etc/hosts에 적혀있는 hostname이 다를경우 발생합니다. 2개 파일의 명칭을 같게 해주면 됩니다. postgres@raonyn:~$ cat /etc/hostname raonyn postgres@raonyn:~$ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 ubuntu2022 # <= /etc/hostname과 동일하게 바꿔줍니다. |
2) psql 접속
- psql 접속 명령어 : psql -U user_name -d db_name
- psql 접속하기
postgres@raonyn:~$ psql psql (14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)) Type "help" for help. postgres=# |
※ 참고 : psql로 패스워드 없이 바로 접속 가능한 것은 pg_hba.conf에서 아래와 같이 postgres를 peer로 설정했기 때문입니다.
# Database administrative login by Unix domain socket local all postgres peer |
3) postgres 데이터베이스 계정 패스워드 변경(패스워드 변경 작업은 차후에 해도 무방 함)
- postgres 계정은 최초 설치시 패스워드가 등록되어 있지 않습니다.
- postgres 패스워드 변경
postgres=# alter user postgres with password '1234'; ALTER ROLE |
- 패스워드를 변경 했다면 아래와 같이 pg_hba.conf파일의 접속 method를 패스워드 방식(scram-sha-256)으로 바꾸고 데이터베이스를 재기동합니다.
# Database administrative login by Unix domain socket local all postgres scram-sha-256 |
- psql 접속시 아래와 같이 패스워드 입력을 요구합니다.
postgres@raonyn:~$ psql -U postgres -d postgres Password for user postgres: psql (14.5 (Ubuntu 14.5-0ubuntu0.22.04.1)) Type "help" for help. postgres=# |
2. psql 기본 명령어
4) psql 기본 명령어
- 도움말을 보고 싶으면 아래와 같이 입력합니다.
\h for help with SQL commands
\? for help with psql commands
- 데이터베이스 확인
postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) |
- DB 데이터베이스 선택
postgres=# \c [데이터베이스 명]
postgres=# \c postgres You are now connected to database "postgres" as user "postgres". |
- DB 사용자 생성
postgres=# create user berasix with password '1234'; CREATE ROLE |
- DB 사용자 권한 정보
postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------------------------------------+----------- berasix | | {} postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} |
- DB 데이터베이스 생성
postgres=# CREATE DATABASE dbname OWNER ownnerName
postgres=# CREATE DATABASE berasixdb OWNER berasix; CREATE DATABASE postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- berasixdb | berasix | UTF8 | en_US.UTF-8 | en_US.UTF-8 | postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (4 rows) |
- DB 테이블 출력
berasix=# \dt
- DB 해당 테이블 정보 출력
berasix=# \d [테이블명]
- DB 나가기(종료)
berasix=# \q
'DBMS' 카테고리의 다른 글
[PostgreSQL 설치와 운영] #5. PostgreSQL 로그 설정하기 (0) | 2022.10.20 |
---|---|
[MSSQL] char/varchar, nchar/nvarchar (0) | 2022.10.19 |
[PostgreSQL 설치와 운영] #3. pg_hba.conf 설정하기(원격 접속 설정) (0) | 2022.10.14 |
[PostgreSQL 설치와 운영] #2. postgresql.conf 설정하기 (0) | 2022.10.12 |
[PostgreSQL 설치와 운영] #1. Ubuntu 22.04 PostgreSQL 설치 (0) | 2022.10.11 |
댓글