不确定我是否正确地在我的Mac上安装了PostgreSQL来创建Flask Web应用程序。

25 浏览
0 Comments

不确定我是否正确地在我的Mac上安装了PostgreSQL来创建Flask Web应用程序。

我在运行macOS 10.13.6的Mac上使用Homebrew安装了PosgreSQL 10.5,按照这个教程进行操作。安装完成后,我运行=# \du来查看所有用户。我看到了教程中说在安装过程中PosgreSQL会创建的与我的Mac名称相同的用户,但是默认的"postgres"用户没有被创建(或者至少没有显示出来)。

我的主要问题是...

我需要以'root'身份登录到PostgreSQL,但我不清楚具体是什么意思,或者出现了什么问题。根据PostgreSQL wiki的First Steps文档的第一步,它说要首先以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-#

我以为这可能意味着我已经“以root身份登录到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,查看角色,授予它Create DB权限,然后在命令行中再次运行=# \du,然后'postgres'角色旁边出现了Create DB。我在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。毫无疑问,我面临着一个学习曲线。

0