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

명령 줄에서 데이터베이스를 만들려고합니다. 내 OS는 centos이고 postgres 버전은 10.9입니다.

sudo -u postgres psql createdb test
Password for user test:

사용자별로 물어 보는 이유는 무엇입니까?



답변

사용자를 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;


답변

시험:

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


답변

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

create database [databasename];

참고 : 항상 SQL 문을 ;


답변

일부 답변에서 지적했듯이 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.


답변

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

sudo -u postgres psql

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

사용자 생성

sudo -u postgres createuser <username>

데이터베이스 생성

 sudo -u postgres createdb <dbname>

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


답변

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


답변