Я пытаюсь создать базу данных из командной строки. Моя ОС - centos, а версия postgres - 10.9.
sudo -u postgres psql createdb test
Password for user test:
Почему спрашивает меня пользователь?
Я пытаюсь создать базу данных из командной строки. Моя ОС - 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;
create user testuser; create database testdb;
createdb
- это утилита командной строки, которую можно запускать из bash, а не из psql. Чтобы создать базу данных из psql, используйте оператор create database следующим образом:
create database [databasename];
Примечание: всегда заканчивайте свои операторы SQL с помощью ;
;
CREATE DATABASE FOO
что фактически создаст базу данных с именем foo
. Мне потребовалось около 5 минут, чтобы понять, почему «база данных не существует». см .: stackoverflow.com/questions/43111996/…
Как указывается в некоторых ответах, 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
.
В качестве конфигурации Postgres по умолчанию создается пользователь с именем postgres, а пользователь postgres имеет полный доступ суперадминистратора ко всему экземпляру 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