Я пытаюсь создать базу данных из командной строки. Мой SO - centos, а postgres - 9.2
sudo -u postgres psql createdb test
Password for user test:
Зачем спрашивать у пользователя?
Я пытаюсь создать базу данных из командной строки. Мой SO - centos, а postgres - 9.2
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;
Try:
sudo -u postgres psql -c 'create database test;'
createdb
- это утилита командной строки, которую вы можете запускать из bash, а не из psql. Чтобы создать базу данных из psql, используйте оператор create database следующим образом:
create database [databasename];
Примечание: обязательно всегда заканчивайте свои операторы SQL с помощью ;
В качестве конфигурации Postgres по умолчанию создается пользователь с именем postgres, а пользователь postgres имеет полный доступ супер администратора для всего экземпляра PostgreSQL, работающего на вашей ОС.
sudo -u postgres psql
Вышеупомянутая команда получает интерфейс командной строки psql в режиме администратора.
Создание пользователя
sudo -u postgres createuser <username>
Создание базы данных
sudo -u postgres createdb <dbname>
ПРИМЕЧАНИЕ: < > не должны использоваться во время написания команды, они используются для обозначения переменных
Как указывают некоторые ответы, 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
.
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB