不确定我是否正确地在我的Mac上安装了PostgreSQL来创建Flask Web应用程序。
不确定我是否正确地在我的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。毫无疑问,我面临着一个学习曲线。