Я установил PosgreSQL 10.5 на Mac с MacOS 10.13.6, используя Homebrew, следуя этому руководству. После установки я запустил = # \ du , чтобы просмотреть всех пользователей. Я видел пользователя с именем моего Mac, который, как говорится в руководстве, PostgreSQL создает во время установки, но пользователь по умолчанию «postgres» не был создан (или, по крайней мере, не появился).
Мой главный вопрос ...
Мне нужно войти в PostgreSQL «в корне», и я либо не совсем понимаю, что это значит, либо что-то не так. Следуя самым первым шагам из документации Первые шаги *1012* вики вики PostgreSQL, он говорит ...
Первое подключение / вход в систему как root:
# su - postgres
$ psql
psql (9.6.0)
Type "help" for help.
Но когда я открываю окно терминала и набираю su - postgres
, он запрашивает пароль. Я набрал каждый пароль, который мог бы дать эту роль, и он просто говорит: su: Sorry
.
Я провел некоторое исследование и попытался изменить пароль, выполнив следующее:
postgres=# \password postgres
.
Это побудило меня дважды ввести пароль, и это, похоже, сработало. Но когда я возвращаюсь и бегаю: su - postgres
, это просто дает мне то же самое su: sorry
.
Итак, я попытался набрать: psql postgres
. Это по крайней мере изменило $ на postgres = #, что говорит мне о том, что я нахожусь в командной строке PostgreSQL, а затем то же самое: su: postgres
, но это только изменило знак (=) на (-), так что теперь изменено на: postgres-#
Я подумал, что, возможно, это означало, что я "вошел в PostgreSQL в корне, но затем я запустил следующее:
postgres=# su - postgres
postgres-# CREATE SCHEMA test
postgres-# CREATE USER tester PASSWORD 'P@ssword1'
postgres-# GRANT ALL ON SCHEMA test TO tester
postgres-# \q
... и ничего из этого не сработало. Он не создал пользователя или схему.
История ...
- Я установил / удалил PostgreSQL на этом Mac несколько раз
в прошлом для тестирования
- Я также установил / удалил pdAdmin по разным причинам
Вполне возможно, что я сделал что-то во всем этом перемешивании, которое вызвало эту проблему с ролью 'postgres', не создаваемой во время этой установки Homebrew. Итак, я прочитал оставшуюся часть этого урока и набрал $ createuser postgres
, и это, похоже, создало роль 'postgres'. Я пытался использовать ALTER ROLE
для предоставления этой роли Create DB
, но я никогда не мог заставить его работать с помощью командной строки, поэтому я просто открыл pgAdmin, увидел роль, предоставил ей Create DB, а затем снова в командной строке запустил =# \du
снова, и Create DB
появился рядом с ролью «postgres», которую я создал. Я добавил все в pgAdmin, и теперь это выглядит так.
List of roles
Role name | Attributes | Member of
----------------+------------------------------------------------------------+-----------
MyMacsNameHere | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
postgres | Superuser, Create role, Create DB, Replication | {}
Моя конечная цель ...
Я пытаюсь выполнить этот учебник YouTube по созданию веб-приложения Flask с нуля. В учебнике YouTube он использует MySQL, но я хочу использовать PostgreSQL. Само собой разумеется, я против кривой обучения.