Не уверен, что на моем Mac правильно установлен PostgreSQL для создания веб-приложения Flask
Я установил PosgreSQL 10.5 на Mac с MacOS 10.13.6, используя Homebrew, следуя этому руководству. После установки я запустил =# \du для просмотра всех пользователей. Я видел пользователя с именем моего Mac, который, как говорится в руководстве, PostgreSQL создает во время установки, но пользователь по умолчанию "postgres" не был создан (или, по крайней мере, не появился).
Моя главная проблема...
Мне нужно войти в PostgreSQL "в корне", и я либо не совсем понимаю, что это значит, либо что-то не так. Следуя самым первым шагам из документации Первые шаги вики 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. Излишне говорить, что я против кривой обучения.