【发布时间】:2023-04-06 06:20:02
【问题描述】:
这个问题与create database using psql in shell script takes username as db name 类似,但由于没有可接受的答案,我在这里再次询问。我创建了一个用户名 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是数据库名称)。
标签: postgresql psql