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


답변:


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

createdbpsql버전으로 테스트되었습니다 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.