1

我按照本教程使用 Homebrew 在运行 macOS 10.13.6 的 Mac 上安装了 PosgreSQL 10.5 。安装后,我运行=# \du查看所有用户。我看到教程说 PostgreSQL 在安装过程中创建的 Mac 用户名,但是没有创建“postgres”默认用户(或者至少没有出现)。

我的主要问题是...

我需要“从根目录”登录 PostgreSQL,我要么不明白这到底是什么意思,要么出了点问题。在遵循PostgreSQL wiki 的第一步文档中的第一步时,它说...

首先以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

......这些都没有奏效。它没有创建用户或模式。

历史...

  • 过去我曾多次在这台 Mac 上安装/卸载 PostgreSQL 以进行测试
  • 由于各种原因,我还安装/卸载了 pdAdmin

很有可能我在所有的洗牌中做了一些事情,导致了这个问题,在这个 Homebrew 安装期间没有创建“postgres”角色。因此,我确实通读了该教程的其余部分,并且确实输入了$ createuser postgres内容,这似乎确实创建了“postgres”角色。我尝试使用ALTER ROLE来赋予该角色,Create DB但我永远无法使用命令行使其工作,所以我只是打开了 pgAdmin,看到了角色,授予它创建 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 Web 应用程序。在 YouTube 教程中,他使用 MySQL,但我想使用 PostgreSQL。不用说,我正面临学习曲线。

4

0 回答 0