본문 바로가기

DB/PostgreSQL

[ PostgreSQL ] - 데이터 베이스 생성하고 삭제하기

반응형

PostgreSQL에서 데이터베이스를 생성하고 삭제하는 방법을 설명하겠습니다. PostgreSQL에서는 psql 명령어를 사용하거나 SQL 명령을 통해 데이터베이스를 쉽게 생성하고 삭제할 수 있습니다.

1. 데이터베이스 생성

1.1 createdb 명령어를 사용한 데이터베이스 생성

PostgreSQL에서는 createdb 명령어를 사용하여 간단히 데이터베이스를 생성할 수 있습니다.

createdb 데이터베이스이름

예를 들어, mydb라는 데이터베이스를 생성하려면:

createdb mydb

1.2 psql을 사용한 데이터베이스 생성

PostgreSQL 셸(psql)에 접속하여 SQL 명령을 사용해 데이터베이스를 생성할 수도 있습니다.

  1. 먼저 psql에 접속합니다.
   sudo -i -u postgres
   psql

또는 이미 PostgreSQL 사용자를 설정한 경우:

   psql -U 사용자이름
  1. 데이터베이스 생성 명령을 실행합니다.
   CREATE DATABASE 데이터베이스이름;

예를 들어, mydb라는 데이터베이스를 생성하려면:

   CREATE DATABASE mydb;
  1. \l 명령을 입력하여 생성된 데이터베이스를 확인할 수 있습니다.
   \l

1.3 특정 사용자 소유의 데이터베이스 생성

데이터베이스 생성 시, 특정 사용자에게 데이터베이스 소유권을 부여할 수도 있습니다.

CREATE DATABASE 데이터베이스이름 OWNER 사용자이름;

예를 들어, mydb라는 데이터베이스를 myuser 사용자에게 소유권을 부여하여 생성하려면:

CREATE DATABASE mydb OWNER myuser;

2. 데이터베이스 삭제

2.1 dropdb 명령어를 사용한 데이터베이스 삭제

PostgreSQL에서 dropdb 명령어를 사용하여 데이터베이스를 삭제할 수 있습니다.

dropdb 데이터베이스이름

예를 들어, mydb라는 데이터베이스를 삭제하려면:

dropdb mydb

2.2 psql을 사용한 데이터베이스 삭제

PostgreSQL 셸(psql)에 접속한 후 SQL 명령어를 사용해 데이터베이스를 삭제할 수도 있습니다.

  1. 먼저 psql에 접속합니다.
   sudo -i -u postgres
   psql

또는 PostgreSQL 사용자로 접속합니다.

   psql -U 사용자이름
  1. 데이터베이스 삭제 명령을 실행합니다.
   DROP DATABASE 데이터베이스이름;

예를 들어, mydb라는 데이터베이스를 삭제하려면:

   DROP DATABASE mydb;

주의: 데이터베이스를 삭제할 때는 해당 데이터베이스 내의 모든 데이터가 삭제되므로, 삭제 전에 반드시 확인해야 합니다.


3. 데이터베이스가 사용 중일 때 삭제 불가

PostgreSQL에서는 데이터베이스에 접속 중인 사용자가 있을 경우, 해당 데이터베이스를 삭제할 수 없습니다. 이때 강제로 삭제하려면 먼저 접속을 종료시켜야 합니다.

  1. 접속 세션 확인:
    접속 중인 세션을 확인하려면 다음 SQL 명령어를 실행합니다.
   SELECT pid, datname, usename, application_name, client_addr FROM pg_stat_activity WHERE datname = '데이터베이스이름';

예를 들어, mydb 데이터베이스의 세션을 확인하려면:

   SELECT pid, datname, usename, application_name, client_addr FROM pg_stat_activity WHERE datname = 'mydb';
  1. 세션 종료:
    접속 중인 세션을 종료하려면 다음 SQL 명령어로 해당 pid를 종료할 수 있습니다.
   SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '데이터베이스이름';

예를 들어, mydb 데이터베이스에 접속 중인 모든 세션을 종료하려면:

   SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'mydb';

이후 다시 DROP DATABASE 명령어를 실행하여 데이터베이스를 삭제할 수 있습니다.


요약

  • 데이터베이스 생성: createdb 명령어나 CREATE DATABASE SQL 명령어를 사용하여 데이터베이스를 생성합니다.
  • 데이터베이스 삭제: dropdb 명령어나 DROP DATABASE SQL 명령어를 사용하여 데이터베이스를 삭제합니다.
  • 데이터베이스가 사용 중일 때는 세션을 종료한 후 삭제해야 합니다.

이제 PostgreSQL에서 데이터베이스를 생성하고 삭제하는 방법을 알았으니, 이를 활용하여 데이터베이스를 관리할 수 있습니다.

반응형