database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
ㆍPostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
PostgreSQL Tutorials 4906 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 4906
자습서 - 1. 시작하기 - 1.3 데이터베이스 만들기
작성자
김상기(ioseph)
작성일
2003-09-08 13:24ⓒ
2003-09-08 14:02ⓜ
조회수
9,588

원문: http://database.sarang.net/database/postgres/manual/manual-7.3/tutorial-createdb.html

옮긴이: 김상기

1.3. 데이터베이스 만들기

데이터베이스 서버를 사용할 수 있는지를 확인하기 위한 테스트로 먼저 하나의 데이터베이스를 만들어 보겠습니다.  각각의 사용자 단위나, 프로젝트 단위로 데이터베이스를 분리해서 작업하는 것이 일반적이기에, 하나의 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 서버를 설치하고 가동시킨 사용자를 의미합니다. [1]

 

물론 데이터베이스 이름은 아무거나 다른 이름을 사용해도 괜찮습니다. PostgreSQL에서는 만들 수 있는 데이터베이스 갯수 제한이 없습니다. 하지만, 데이터베이스 이름은 첫글자가 숫자나 기호가 올 수 없고, 63글자 까지의 어떠한 이름도 괜찮습니다. 데이터베이스 이름으로 가장 편하게 사용할 수 있는 이름은 그 데이터베이스를 만드는 사용자의 이름과 같은 것입니다. 왜냐하면 많은 프로그램들이 이 사용자와 같은 이름의 데이터베이스 이름을 그 사용자의 기본 데이터베이스로 가정하기 때문입니다. 이런식으로 사용자의 이름과 같은 데이터베이스를 만드려면, 아래와 같은 명령을 이용하면 됩니다. 간편하지요.

$ createdb

만든 데이터베이스를 더 이상 사용할 일이 없으면, 데이터베이스를 삭제 할 수 있습니다. 예를 들어  mydb 데이터베이스를 만든 사람이 그 데이터베이스를 삭제하려면, 다음과 같은 명령을 사용합니다.

$ dropdb mydb

(dropdb 명령은 그 인자가 없어도 기본으로 삭제할 데이터베이스를 사용자 이름가 같은 데이터베이스를 삭제하지는 않습니다. 반드시 삭제할 데이터베이스 이름을 지정해 주어야합니다) 이 작업은 해당 데이터베이스와 관련된 모든 파일들을 물리적으로 완전히 삭제하는 것입니다. 그러기에 실행취소를 할 수 없습니다. 이 작업을 할 때는 반드시 신중을 기하십시오.

주석

[1]

사용자 이름에 대한 부가 설명을 하면, PostgreSQL 서버의 사용자와 시스템 사용자는 엄격히 틀립니다. 구체적으로 설명하면, 데이터베이스를 만들거나 사용할 수 있는 사용자가 꼭 시스템 사용자로 존재해야하는 것도 아니며, 특정 시스템 사용자가 반드시 PostgreSQL 서버의 사용자로 존재해야할 이유도 없습니다. 단지 PostgreSQL 프로그램들은 해당 데이터베이스를 사용하기 위한 사용자를 지정할 때, 기본적으로 현재 사용중인 시스템 사용자의 이름을 이용합니다. 만일 사용자가 없다거나, 해당 사용자의 권한이 부당한 오류 메시지를 만난다면, 그것은 데이터베이스의 사용자에 대한 이야기입니다. 이 사용자를 바꾸려면,  -U 옵션으로 지정할 수 있습니다. 

[Top]
No.
제목
작성자
작성일
조회
4912자습서 - 2. SQL 언어 - 2.1 소개
김상기
2003-09-08
6551
4908자습서 - 1. 시작하기 - 1.4 데이터베이스 사용하기
김상기
2003-09-08
7956
4906자습서 - 1. 시작하기 - 1.3 데이터베이스 만들기
김상기
2003-09-08
9588
4900자습서 - 1. 시작하기 - 1.2 기본 구조 [2]
김상기
2003-09-08
8880
4898자습서 - 1. 시작하기 - 1.1 설치
김상기
2003-09-07
8778
4896자습서 - 서문 [1]
김상기
2003-09-07
6047
47627.2.x 대에서 replace 함수 구현하기
김상기
2003-06-20
5032
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.078초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다