명령 줄에서 데이터베이스 만들기


답변:


157

사용자를 postgres로 변경합니다.

su - postgres

Postgres 용 사용자 생성

$ createuser testuser

데이터베이스 생성

$ createdb testdb

postgres 셸에 액세스

psql ( enter the password for postgressql)

postgres 사용자에게 권한 제공

$ alter user testuser with encrypted password 'qwerty';
$ grant all privileges on database testdb to testuser;

24
중요 : createuser 및 createdb는 psql이 아닌 쉘에서 실행됩니다 .
— Kim Kern

22
그러나 psql로 실행하는 경우 올바른 명령은 다음과 같습니다.create user testuser; create database testdb;
— kiril

66

시험:

sudo -u postgres psql -c 'create database test;'

9
권한도 부여하는 것을 잊지 마십시오 :sudo -u postgres psql -c 'grant all privileges on database test to username;'
— lukyer

32

createdb는 psql이 아닌 bash에서 실행할 수있는 명령 줄 유틸리티입니다. psql에서 데이터베이스를 생성하려면 다음과 같이 create database 문을 사용합니다.

create database [databasename];

참고 : 항상 SQL 문을 ;


3
다음으로 끝나는 것에 대한 힌트에 대한 추가 정보;
— Jstuff

Postgres가 UPPERCASE를 낮추어 준다고 언급하고 싶었습니다. 그래서 CREATE DATABASE FOO실제로 foo. "데이터베이스가 존재하지 않는"이유를 파악하는 데 5 분 정도 걸렸습니다. 참조 : stackoverflow.com/questions/43111996/…
— O-9

26

일부 답변에서 지적했듯이 createdb데이터베이스를 만드는 데 사용할 수있는 명령 줄 유틸리티입니다.

라는 사용자가 있다고 가정하면 dbuser다음 명령을 사용하여 데이터베이스를 만들고에 대한 액세스를 제공 할 수 있습니다 dbuser.

createdb -h localhost -p 5432 -U dbuser testdb

localhost올바른 DB 호스트 이름, 5432올바른 DB 포트 및 testdb생성하려는 데이터베이스 이름으로 바꿉니다 .

이제이 psql새로 생성 된 데이터베이스에 연결하는 데 사용할 수 있습니다.

psql -h localhost -p 5432 -U dbuser -d testdb

createdb및 psql버전으로 테스트되었습니다 9.4.15.


이것은 내가 ssh 할 수없는 인스턴스에 데이터베이스를 만드는 올바른 방법이었습니다. 실행 "CREATE DB를"원격 psql의 유틸리티 -c PARAM로하는 모든 시도는 사용자처럼라는 데이터베이스의 존재를 가정
— 길리 Garibi

14

포스트 그레스의 기본 구성으로, 사용자라는 포스트 그레스가 만든 사용자입니다 포스트 그레스는 사용자의 OS에서 실행되는 전체 PostgreSQL의 인스턴스에 대한 모든 최고 관리자 액세스 할 수 있습니다.

sudo -u postgres psql

위의 명령은 관리자 모드에서 psql 명령 줄 인터페이스를 가져옵니다.

사용자 생성

sudo -u postgres createuser <username>

데이터베이스 생성

 sudo -u postgres createdb <dbname>

참고 : <>는 명령을 작성하는 동안 사용되지 않으며 변수를 나타내는 데 사용됩니다.


2
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB

'PGDB'를 'PGDATABASE'로 변경하고 내 보내면 (또는 명령에 접두사를 추가) 명령에 전달할 필요가 없으며 환경에서 읽습니다.
— Connor Bell
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.