这个问题与在shell脚本中使用psql创建数据库,以用户名作为数据库名类似,但由于没有被接受的答案,我在这里再次提出。我已经创建了一个用户名为
myuser
,密码为mypassword
的用户:> psql
psql (11.5)
Type "help" for help.
kurt=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
kurt | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
myuser | | {}
kurt=#
然而,如果我运行 psql --username=myuser
,会报错:database "myuser" does not exist
:
> psql --username=myuser
psql: FATAL: database "myuser" does not exist
我对这个错误信息感到有些困惑,因为根据 psql --help
的说明,这是一个用户名,而不是数据库名:
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "local socket")
-p, --port=PORT database server port (default: "5432")
-U, --username=USERNAME database user name (default: "kurt")
-w, --no-password never prompt for password
-W, --password force password prompt (should happen automatically)
你知道我做错了什么吗?这是我正在使用的psql
版本:
> psql --version
psql (PostgreSQL) 11.5
psql --username=myuser kurt
(其中kurt
是数据库名称)。 - Kurt Peek