Создание базы данных из командной строки

Я пытаюсь создать базу данных из командной строки. Мой SO - centos, а postgres - 9.2

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

Зачем спрашивать у пользователя?

Ответ 1

Измените пользователя на 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;

Ответ 2

Try:

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

Ответ 3

createdb - это утилита командной строки, которую вы можете запускать из bash, а не из psql. Чтобы создать базу данных из psql, используйте оператор create database следующим образом:

create database [databasename];

Примечание: обязательно всегда заканчивайте свои операторы SQL с помощью ;

Ответ 4

В качестве конфигурации Postgres по умолчанию создается пользователь с именем postgres, а пользователь postgres имеет полный доступ супер администратора для всего экземпляра PostgreSQL, работающего на вашей ОС.

sudo -u postgres psql

Вышеупомянутая команда получает интерфейс командной строки psql в режиме администратора.

Создание пользователя

sudo -u postgres createuser <username>

Создание базы данных

 sudo -u postgres createdb <dbname>

ПРИМЕЧАНИЕ: < > не должны использоваться во время написания команды, они используются для обозначения переменных

Ответ 5

Как указывают некоторые ответы, createdb - это утилита командной строки, которую можно использовать для создания базы данных.

Предполагая, что у вас есть пользователь с именем dbuser, следующую команду можно использовать для создания базы данных и предоставления доступа к dbuser:

createdb -h localhost -p 5432 -U dbuser testdb

Замените localhost на правильное имя хоста БД, 5432 - на правильный порт БД, а testdb на имя базы данных, которую вы хотите создать.

Теперь psql можно использовать для подключения к этой недавно созданной базе данных:

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

Протестировано с версиями createdb и psql 9.4.15.

Ответ 6

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