Использование Postgres Shell для создания пользователя - PullRequest
0 голосов
/ 07 декабря 2018

Я следую учебному пособию из книги:

Меле, Антонио . Django 2 на примере: создание мощных и надежных веб-приложений Python с нуля (Kindle Locations 1917-1918) .Packt Publishing.Kindle Edition.

Я нахожусь на этой части:

  • Добавление полнотекстового поиска в свой блог
    • Установка PostgreSQL

Я на Windows 10, и я прекрасно установил Postgres.В инструкциях говорится, что введите postgres shell :

su postgres
createuser -dP blog

Я предполагаю, что пытаюсь создать пользователя с именем blog, который будет иметь пароль и ему будет разрешено создавать базы данных.?

Когда я это делаю, я получаю:

Server [localhost]: su postgres
Database [postgres]: createuser -dP blog
Port [5432]:
Username [postgres]:
psql: warning: extra command-line argument "postgres" ignored
psql: warning: extra command-line argument "-d" ignored
psql: warning: extra command-line argument "createuser" ignored
psql: warning: extra command-line argument "-dP" ignored
psql: warning: extra command-line argument "blog" ignored
psql: warning: extra command-line argument "-p" ignored
psql: warning: extra command-line argument "5432" ignored
psql: could not translate host name "su" to address: Unknown host
Press any key to continue . . .

Я не уверен, что делать или что именно происходит?Инструкция довольно непонятная

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

createuser - команда, которая должна быть дана из командной строки.Поскольку вы работаете в Windows, это означает, что это файл .exe, вероятно, расположенный в каталоге bin, где вы установили Postgres.В командной строке или в командной строке powershell используйте createuser -dP blog.

Кроме того, вам может потребоваться предоставить от -h localhost -p 5432 -U postgres -W password до createuser.exe, чтобы он мог взаимодействовать с сервером.

0 голосов
/ 08 декабря 2018

Похоже, вы пытаетесь использовать команды в psql, su postgres и createuser -dP blog, предназначенные для оболочки типа bash.su postgres говорит о переключении пользователя ОС postgres, а команда createuser является командой оболочки для создания пользователей базы данных.Однако, если вы находитесь в psql, эта команда недоступна.

Также кажется, что вы вводите эти команды, когда psql запрашивает информацию о соединении с базой данных, так что даже если вы отправляли ее sql / psqlкоманды, которые не будут работать в этот момент.

Вот документация PostgreSQL для команды createuser.Используйте эту команду из системной оболочки для создания пользователей базы данных.

Вот документация PostgreSQL на CREATE ROLE.Вот как вы создаете пользователей из psql.

...