데이터베이스 서버를 사용할 수 있는지를 확인하기 위한 테스트로 먼저 하나의 데이터베이스를 만들어 보겠습니다. 각각의 사용자 단위나, 프로젝트 단위로 데이터베이스를 분리해서 작업하는 것이 일반적이기에, 하나의 PostgreSQL 서버는 많은 데이터베이스를 관리할 수 있습니다.
어쩌면, 이미 시스템 관리자가 일반 사용자들을 위해서 그들이 사용할 수 있는 데이터베이스를 미리 만들어 두었을 수도 있습니다. 이런 경우라면, 시스템 관리자가 일반 사용자들에게 그 사실을 알려서 사용할 수 있는 데이터베이스 이름을 알려주어야겠지요. 이렇게 이미 만들어진 데이터베이스가 있고, 그것의 이름이 어떤 것인지 알고 있다면, 이 섹션을 읽지 않고 넘어가셔도 좋습니다.
예를 들어 mydb라는 이름의 새로운 데이터베이스를 만드려면, 다음과 같은 명령을 사용합니다.
$ createdb mydb
정상적인 결과라면 다음과 같이 나타납니다.
CREATE DATABASE
직접 해본 결과가 윗 메시지와 같다면, 그냥 이 섹션을 넘어가세요.
createdb: command not found
이런 메시지가 나타났다면, PostgreSQL 패키지가 정성적으로 설치 되지 않은 경우이거나 사용자의 실행 경로 환경변수(PATH)에 이 PostgreSQL 설치 경로가 포함되어있지 않은 경우입니다. 이것을 알기 위해서는 일단 다음과 같이 절대경로로 다시 한번 호출해 봅니다.
$ /usr/local/pgsql/bin/createdb mydb
윗 명령에서의 절대 경로는 각 시스템마다 틀릴 수 있습니다. 정확히 알기 위해서는 시스템 관리자에게 문의해 보든지, OS 배포판 설명서를 참조하세요.
이 명령의 또 다른 결과로 다음과 같은 메시지가 보일 수 있습니다.
psql: could not connect to server: Connection refused
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
createdb: database creation failed
이 경우는 현재 시스템에는 PostgreSQL 서버가 가동중이지 않다는 것을 의미합니다. 다시 한번 설치, 서버 실행 관련 문서를 살펴보거나, 시스템 관리자에게 자문을 구해보십시오.
또 다른 오류 메시지로,
ERROR: CREATE DATABASE: permission denied
createdb: database creation failed
이런 메시지를 만날 수 있는데, 이 경우는 현재 사용자가 데이터베이스를 만들 권한이 없는 경우입니다. PostgreSQL에서는 새로운 데이터베이스를 만들거나, 새로운 사용자를 만들 사용자를 데이터베이스 관리자라고 해서 그 데이터베이스 관리자에게는 다른 많은 권한들이 부여됩니다. 만일 시스템 관리자가 설치한 PostgreSQL 서버를 이용한다면, 시스템 관리자에게 이 부분에 대한 자문을 구해보시고, 직접 설치한 경우라면, 윗 명령을 내리는 사용자와 PostgreSQL 서버를 설치하고, 가동시킨 사용자가 틀려서 발생한 경우입니다. 이런 경우는 다시 PostgreSQL 서버를 설치하고 가동시킨 사용자로 전환하셔서 다시 시도해보세요. - 일반적으로 그 사용자 이름이 postgres 입니다 - 이 자습서에서 계속 언급하는 사용자는 데이터베이스 관리자 즉, PostgreSQL 서버를 설치하고 가동시킨 사용자를 의미합니다.
물론 데이터베이스 이름은 아무거나 다른 이름을 사용해도 괜찮습니다. PostgreSQL에서는 만들 수 있는 데이터베이스 갯수 제한이 없습니다. 하지만, 데이터베이스 이름은 첫글자가 숫자나 기호가 올 수 없고, 63글자 까지의 어떠한 이름도 괜찮습니다. 데이터베이스 이름으로 가장 편하게 사용할 수 있는 이름은 그 데이터베이스를 만드는 사용자의 이름과 같은 것입니다. 왜냐하면 많은 프로그램들이 이 사용자와 같은 이름의 데이터베이스 이름을 그 사용자의 기본 데이터베이스로 가정하기 때문입니다. 이런식으로 사용자의 이름과 같은 데이터베이스를 만드려면, 아래와 같은 명령을 이용하면 됩니다. 간편하지요.
$ createdb
만든 데이터베이스를 더 이상 사용할 일이 없으면, 데이터베이스를 삭제 할 수 있습니다. 예를 들어 mydb 데이터베이스를 만든 사람이 그 데이터베이스를 삭제하려면, 다음과 같은 명령을 사용합니다.
$ dropdb mydb
(dropdb 명령은 그 인자가 없어도 기본으로 삭제할 데이터베이스를 사용자 이름가 같은 데이터베이스를 삭제하지는 않습니다. 반드시 삭제할 데이터베이스 이름을 지정해 주어야합니다) 이 작업은 해당 데이터베이스와 관련된 모든 파일들을 물리적으로 완전히 삭제하는 것입니다. 그러기에 실행취소를 할 수 없습니다. 이 작업을 할 때는 반드시 신중을 기하십시오.