Postgresql psql:致命:角色“;“斯蒂芬”;不存在

Postgresql psql:致命:角色“;“斯蒂芬”;不存在,postgresql,osx-lion,Postgresql,Osx Lion,我正试图建立一个玩具数据库,我可以随意创建和销毁。我不想使用postgres用户,以防我破坏了一些重要的东西。我做了以下工作: $ psql -h localhost -U postgres postgres=# \du List of roles Role name | Attributes | Member of -----------+------------------------------

我正试图建立一个玩具数据库,我可以随意创建和销毁。我不想使用
postgres
用户,以防我破坏了一些重要的东西。我做了以下工作:

$ psql -h localhost -U postgres
postgres=# \du
                       List of roles
 Role name |            Attributes             | Member of 
-----------+-----------------------------------+-----------
 postgres  | Superuser, Create role, Create DB | {}

postgres=# create user Stephen createdb;
CREATE ROLE
postgres=# \du
                   List of roles
 Role name |            Attributes             | Member of 
-----------+-----------------------------------+-----------     
 postgres  | Superuser, Create role, Create DB | {}
 stephen   | Create DB                         | {}

postgres=# ^D\q
然后,当我尝试连接时,会出现以下错误:

$ psql -h localhost 
psql: FATAL:  role "Stephen" does not exist
$ psql -h localhost -U Stephen
psql: FATAL:  role "Stephen" does not exist
这对我来说毫无意义。我可以看到用户stephen,但它不允许我使用它。我错过了什么


我正在OS X Lion上使用psql 9.0.10。

您是否尝试编写区分大小写的版本:

$ psql -h localhost -U stephen

由于您的角色名以一个小的
s
开头?

登录是区分大小写的-“Stephen”与“Stephen”不同。

Hmmm,似乎是这样。当我显式地使用一个大的
s
时,为什么要用一个小的
s
来创建它?如果我创建了用户“Stephen”createdb(有趣的是,使用双引号)然后创建一个大小写正确的用户。我接受你的回答。很抱歉,我太晚才注意到你的第二个问题,很高兴你找到了答案:)@Stephenasku:不带引号的标识符被折成小写,带双引号的标识符保留其大小写。