1. 접속

C:\Program Files\PostgreSQL\14\bin>psql -U postgres
암호:
psql (14.1)
도움말을 보려면 "help"를 입력하십시오.

postgres=# \l
                                          데이터베이스 목록
       이름        |  소유주  | 인코딩 |     Collate      |      Ctype       |      액세스 권한
-------------------+----------+--------+------------------+------------------+-----------------------
 blog.daonelab.com | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 postgres          | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 template0         | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
                   |          |        |                  |                  | postgres=CTc/postgres
 template1         | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
                   |          |        |                  |                  | postgres=CTc/postgres
(4개 행)


postgres=# \dn
스키마(schema) 목록
  이름  |  소유주
--------+----------
 public | postgres
(1개 행)

postgres=#
postgres=# \q

C:\Program Files\PostgreSQL\14\bin>

 

2. DB 삭제

postgres=# drop database "blog.daonelab.com";
DROP DATABASE

postgres=# \l
                                      데이터베이스 목록
   이름    |  소유주  | 인코딩 |     Collate      |      Ctype       |      액세스 권한
-----------+----------+--------+------------------+------------------+-----------------------
 postgres  | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 template0 | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
           |          |        |                  |                  | postgres=CTc/postgres
 template1 | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
           |          |        |                  |                  | postgres=CTc/postgres
(3개 행)

 

3. DB 생성

postgres=# create database "blog.daonelab.com";
CREATE DATABASE
postgres=# \l
                                          데이터베이스 목록
       이름        |  소유주  | 인코딩 |     Collate      |      Ctype       |      액세스 권한
-------------------+----------+--------+------------------+------------------+-----------------------
 blog.daonelab.com | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 postgres          | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 |
 template0         | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
                   |          |        |                  |                  | postgres=CTc/postgres
 template1         | postgres | UTF8   | Korean_Korea.949 | Korean_Korea.949 | =c/postgres          +
                   |          |        |                  |                  | postgres=CTc/postgres
(4개 행)

 

4. 백업한 DB복원 (full backup 기준)

백업한 파일이 다른 버전의 PostgreSQL SERVER라면 백업파일을 UTF-8인코딩으로 열어서 PASSWORD관련 부분 주석처리후 복원한다.

...

--
-- Roles
--

--CREATE ROLE blog;
--ALTER ROLE blog WITH NOSUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'md596bfc24075f5b18186c0ec4a9f1dc6b9';
--CREATE ROLE postgres;
--ALTER ROLE postgres WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS PASSWORD 'md53cb7295b3d4903b5c34ed398c3510c5b';
--
-- User Configurations

...
C:\Program Files\PostgreSQL\14\bin>psql -U postgres -f "C:\Work\Postgres backup\full_2022.01.31.sql" blog.daonelab.com
postgres 사용자의 암호:
SET
SET
SET
ALTER ROLE
ALTER ROLE
접속정보: 데이터베이스="template1", 사용자="postgres".
SET
SET
SET
SET
SET
 set_config
------------

(1개 행)

...

ALTER TABLE
GRANT
접속정보: 데이터베이스="postgres", 사용자="postgres".
SET
SET
SET

....

C:\Program Files\PostgreSQL\14\bin>

 

5. 비번 초기화

C:\Program Files\PostgreSQL\14\data\pg_hba.conf 에서 METHOD를 모두 trust로 변경후 PostgreSQL Server 재시작

C:\Program Files\PostgreSQL\14\bin>psql -U postgres
psql (14.1)
도움말을 보려면 "help"를 입력하십시오.

postgres=# ALTER USER postgres WITH PASSWORD 'new_password';
ALTER ROLE

그리고 나서 다시 pg_hba.conf 복원후 PostgresSQL Server 재시작