createdb 명령을 사용하여 PostgreSQL에서 데이터베이스 생성

Createdb Myeonglyeong Eul Sayonghayeo Postgresqleseo Deiteobeiseu Saengseong



이 가이드에서는 createdb 명령을 사용하여 PostgreSQL에서 데이터베이스를 생성하는 방법에 대해 알아봅니다.

전제 조건:

이 가이드에 설명된 단계를 수행하려면 다음 구성 요소가 필요합니다.

  • 적절하게 구성된 Linux 시스템. 테스트를 위해 다음을 고려하십시오. VirtualBox를 사용하여 가상 Ubuntu 머신 설정 .
  • PostgreSQL을 설치 및 구성했습니다. 자세히 알아보기 우분투에 PostgreSQL 설치 .
  • 에 대한 액세스 sudo 권한이 있는 루트가 아닌 사용자 .

PostgreSQL 데이터베이스

PostgreSQL 무료 오픈 소스 SQL 호환 개체 관계형 데이터베이스 시스템입니다. 관계형(SQL) 및 비관계형(JSON) 쿼리 모두에서 작동할 수 있습니다. 자세히 알아보기 PostgreSQL의 기능 .







PostgreSQL에서 데이터 계층 구조는 다음과 같습니다.



  • 무리
  • 데이터 베이스
  • 개요
  • 테이블(또는 다른 개체, 예: 함수)

모든 PostgreSQL 인스턴스는 여러 클라이언트 연결을 수락할 수 있습니다. 클라이언트는 연결 요청에서 데이터베이스 이름을 지정해야 합니다. 연결당 하나의 데이터베이스만 허용됩니다. 그러나 클라이언트는 서버에 대한 여러 연결을 열어 하나 이상의 데이터베이스에 동시에 연결할 수 있습니다.



PostgreSQL에서 데이터베이스 생성

1. 서버에 대한 연결 열기

새 데이터베이스를 만들려면 먼저 PostgreSQL 서버에 연결합니다.





$ 스도 -나 -안에 포스트그레스
$ psql

데이터베이스 생성은 제한된 작업입니다. 충분한 권한이 있는 사용자만 작업을 수행할 수 있습니다.



2. 현재 데이터베이스 나열
psql에서 다음 쿼리를 실행하여 서버의 데이터베이스 목록을 인쇄합니다.

$ \목록

설치하는 동안 PostgreSQL은 'postgres'라는 서버의 첫 번째 데이터베이스를 생성합니다. 두 개의 추가 데이터베이스도 생성됩니다.

  • 템플릿1 : 클러스터 내에서 새로운 데이터베이스를 생성할 때마다 'template1'이 복제됩니다.
  • 템플릿0 : 'template1'의 원본 콘텐츠에 대한 원래의 복사본 역할을 합니다.

새로 생성된 모든 데이터베이스의 일부가 되지 않으려면 'template1' 내에 객체를 생성하지 마십시오. 'template1'이 수정되면 'template0'을 복제하여 사이트 로컬 추가 없이 새 데이터베이스를 생성할 수 있습니다.

3. 새 데이터베이스 생성
새 데이터베이스를 만들려면 psql에서 다음 쿼리를 실행합니다.

$ 데이터베이스 생성 < db_name > ;

여기:

  • 현재 역할은 자동으로 새 데이터베이스의 소유자로 간주됩니다.
  • 소유자는 소유자를 다른 역할로 변경할 수 있는 권한이 있습니다.

다음 명령을 사용하여 조치가 성공하면 데이터베이스 목록을 확인하십시오.

$ \목록

권한이 있는 계정으로 다음 명령을 사용하여 다른 사람을 위한 데이터베이스를 만들 수도 있습니다.

$ 데이터베이스 생성 < db_name > 소유자 < 역할 > ;

Createdb 명령

이전 방법에서는 데이터베이스를 생성하기 위해 여러 단계를 거쳐야 했습니다.

  • psql을 사용하여 PostgreSQL 서버에 연결합니다.
  • 쿼리를 실행하여 새 데이터베이스를 만듭니다.

프로세스를 간소화하기 위해 PostgreSQL은 createdb 명령과 함께 제공됩니다. 기본적으로 이러한 작업에 대한 래퍼 역할을 합니다. 쉘에서 createdb 명령을 직접 실행할 수 있습니다.

1. Createdb를 사용하여 데이터베이스 생성
기본 데이터베이스 서버를 사용하여 데이터베이스를 생성하려면 다음 명령을 사용하십시오.

$ 만든b < db_name >

다음 명령을 사용하여 조치를 확인하십시오.

$ psql -씨 '\목록'

다양한 옵션을 사용하여 createdb 작업을 미세 조정할 수도 있습니다. 다음 예를 확인하십시오.

$ 만든b -시간 < 주인 > -피 < 포트 > -티 < 주형 > -그것은 --사용자 이름 = < 사용자 이름 > --비밀번호 --유지보수-db = < maintenance_db_이름 > < db_name >

여기:

  • -시간 : 이 매개변수는 PostgreSQL 서버 위치(IP 주소 또는 도메인 이름)를 지정합니다.
  • -피 : 서버에 접속하기 위한 포트입니다.
  • -티 : 새 데이터베이스를 만들 때 사용할 템플릿입니다. template0, template1 또는 기타 데이터베이스가 될 수 있습니다.
  • -그것은 : 동등한 쿼리를 에코합니다.
  • -사용자 이름 : 서버에 연결하기 위한 사용자 이름입니다.
  • -비밀번호 : createdb 명령이 서버에 연결하기 전에 암호를 묻도록 합니다. 대부분의 경우 서버에서 암호를 요구하는 경우 createdb가 자동으로 암호를 묻기 때문에 필요하지 않습니다. 그러나 그것을 알아내는 데 연결 시도를 소비합니다.
  • –유지보수-db : 새 데이터베이스를 생성할 때 연결할 데이터베이스입니다. 지정하지 않으면 기본적으로 postgres가 사용됩니다. postgres가 없으면 'template1'이 가정됩니다.

행동으로 옮길 시간입니다. 다음 createdb 명령을 실행합니다.

$ 만든b -시간 로컬 호스트 -피 5432 -티 템플릿0 -그것은 --사용자 이름 =postgres test_db

출력에서 알 수 있듯이 다음 쿼리와 동일합니다.

$ 데이터베이스 작성 test_db 템플릿 template0;

추가 데이터베이스 관리

이 섹션에서는 다른 데이터베이스 관리 작업을 살펴보겠습니다.

데이터베이스 나열

서버에 저장된 데이터베이스를 나열하는 몇 가지 방법이 있습니다. 이전 섹션에서 이미 한 가지 방법을 시연했습니다.

$ \목록

또 다른 방법은 'pg_database' 시스템 카탈로그를 검사하는 것입니다.

$ pg_database에서 데이터 이름을 선택하십시오.

데이터베이스 삭제

데이터베이스를 삭제하려면 다음 쿼리를 실행합니다.

$ 데이터베이스 삭제 < db_name > ;

createdb와 유사하게 PostgreSQL도 셸에서 실행할 수 있는 dropdb 명령과 함께 제공됩니다. 다음 예를 살펴보십시오.

$ dropdb -시간 < 주인 > -피 < 포트 > --사용자 이름 = < 사용자 이름 > --비밀번호 -그것은 < db_name >

여기:

  • -시간 : 연결할 PostgreSQL 서버입니다.
  • -피 : 연결할 PostgreSQL 서버의 포트입니다.
  • -그것은 : 동등한 쿼리를 에코합니다.

사용자는 데이터베이스를 삭제할 수 있는 충분한 권한이 있어야 합니다.

데이터베이스 소유권 변경

데이터베이스 소유자는 데이터베이스 삭제를 포함하여 데이터베이스에 대한 모든 작업을 수행할 수 있습니다. 기본적으로 데이터베이스를 생성하는 사용자가 소유자로 할당됩니다. 그러나 소유권을 다른 사용자에게 재할당할 수 있습니다.

데이터베이스 소유자를 변경하려면 psql에서 다음 쿼리를 실행합니다.

$ 데이터베이스 변경 < db_name > 소유자 < 새_소유자 > ;

그러나 이렇게 해도 데이터베이스(테이블 포함) 내의 개체 소유권은 변경되지 않습니다. 이러한 경우에는 다른 쿼리를 사용해야 합니다. 대상 데이터베이스에 연결하고 다음 쿼리를 실행합니다.

$ 소유 재할당 < 구 소유자 > 에게 < 새_소유자 > ;

이 쿼리는 편리하지만 몇 가지 주의 사항이 있습니다.

  • postgres(데이터베이스)에 연결할 때 여러 데이터베이스의 소유권을 한 번에 변경할 수 있습니다.
  • 전체 DB 인스턴스를 손상시킬 수 있으므로 원래 소유자가 postgres인 경우 이 쿼리를 사용하지 마십시오.

보너스: 셸에서 쿼리 실행

지금까지는 PostgreSQL 콘솔에서 쿼리를 실행했습니다. 스크립트에 일부 데이터베이스 기능을 통합하려면 어떻게 해야 합니까? createdb 및 dropdb 명령은 특정 작업만 수행할 수 있습니다.

이를 해결하기 위해 psql을 도관으로 사용할 수 있습니다. 표준 대화형 셸 외에도 psql은 즉시 쿼리를 실행할 수 있습니다.

방법 1:

명령 구조는 다음과 같습니다.

$ psql -시간 < 주인 > -피 < 포트 > -안에 < 사용자 이름 > -디 < 데이터 베이스 > -씨 < 질문 >

여기:

  • -시간 : PostgreSQL 서버의 주소입니다.
  • -피 : 연결할 포트입니다(기본값은 5432).
  • -안에 : 연결할 사용자입니다.
  • -디 : 연결할 데이터베이스입니다.
  • -씨 : 실행할 쿼리입니다.

방법 2:

PostgreSQL에는 연결 URI라는 또 다른 흥미로운 기능이 있습니다. 모든 연결 매개변수를 깔끔하게 인코딩하는 영리한 방법입니다. 연결 URI의 구조는 다음과 같습니다.

$ 포스트그레SQL: //< 사용자 이름 > : < 비밀번호 >@< 주인 > : < 포트 >/< db_name >

여기:

  • 포스트그레SQL 또는 포스트그레스 : PostgreSQL 연결 URI의 고유한 프로토콜입니다.

연결 URI를 사용하여 데이터베이스에 연결하려면 다음 psql 명령을 사용합니다.

$ psql -디 < connection_uri > -씨 < 질문 >

결론

PostgreSQL에서 데이터베이스를 생성하는 다양한 방법에 대해 배웠습니다. CREATE DATABASE 쿼리를 사용하여 데이터베이스를 생성하는 방법을 시연했습니다. 또한 createdb 명령을 사용하여 데이터베이스를 생성하는 방법도 보여 주었습니다. 또한 데이터베이스 삭제 및 소유자 변경과 같은 다른 중요한 데이터베이스 관리 작업에 대해서도 설명했습니다.

PostgreSQL에 대해 더 알고 싶으십니까? 확인 PostgreSQL 하위 범주 다양한 기능에 대한 수많은 가이드가 포함된 y; 예를 들어: 기능 , 정규 표현식 , 테이블 , 그리고 훨씬 더.