Я намагаюся створити базу даних із командного рядка. Моя ОС - 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 Shell
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 [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