我跑了
$ createuser --pwprompt
并看到:
Enter password for new role:
我希望系统提示您输入用户名,因此,此时我按了 CTRL + C 。
man
页的提要说用户名是可选的:
createuser [connection-option...] [option...] [username]
给出的唯一其他信息是:
用户名
指定要创建的PostgreSQL用户的名称。此名称必须不同于此PostgreSQL安装中的所有现有角色。
createuser
上什么用户都没有操作?
答案 0 :(得分:1)
您没有阅读文档的这一部分(也花了我一段时间):
--interactive
如果在命令行上未指定用户名,则提示输入用户名,并提示输入
-d
/-D
,-r
/-R
,{ {1}} /-s
是 在命令行上未指定。 (这是PostgreSQL 9.1之前的默认行为。)
您未指定-S
,因此不会提示您。
因此,PostgreSQL选择默认用户:除非设置--interactive
,否则它就是您的操作系统用户。
因此,假设您是操作系统用户PGUSER
,则可以有效地执行以下操作:
postgres
这当然很愚蠢,会导致
createuser -U postgres postgres
如果您没有让步并中断执行。