PostgreSQL错误致命:角色“;用户名”;不存在

PostgreSQL错误致命:角色“;用户名”;不存在,postgresql,windows-7,windows-7-x64,roles,Postgresql,Windows 7,Windows 7 X64,Roles,我正在windows中设置PostgreSQL 9.1 我不能用PostgreSQL做任何事情:不能创建数据库,不能创建用户;所有操作都返回错误消息 致命:角色根目录不存在 root是我在安装Postgresql 但我可以通过以下方式连接: username : postgres 如何使用roleroot连接到postgres? 有一个解决方案提到linux平台使用su命令,但无法找到windows7的解决方案 提前感谢如果您想使用用户名root登录Postgres您需要首先创建这样的用

我正在windows中设置PostgreSQL 9.1

我不能用PostgreSQL做任何事情:不能创建数据库,不能创建用户;所有操作都返回错误消息

致命:角色根目录不存在
root是我在安装
Postgresql

但我可以通过以下方式连接:

 username : postgres  
如何使用role
root连接到postgres?
有一个解决方案提到linux平台使用su命令,但无法找到windows7的解决方案


提前感谢

如果您想使用用户名
root登录Postgres
您需要首先创建这样的用户

您首先需要以Postgres超级用户的身份登录。这通常是
postgres
(在安装过程中指定):

然后,您可以创建角色和数据库:

psql (9.4.0)
Type "help" for help.

postgres=# create user root with password 'verysecret';
CREATE ROLE
postgres=# \q

c:\
c:\>psql -U root postgres
psql (9.4.0)
Type "help" for help.

postgres=>
以超级用户身份登录,您还可以向
root
用户授予必要的权限

psql
的所有参数

手册中还记录了创建用户和数据库:


在某些情况下,安装postgres时不会创建初始数据库


您需要。

在postgres docker容器上还原DB/table时出现了相同的问题

  • 。当您从docker容器内部连接到Postgres DB(psql shell)时,默认用户将是“root”(除非您指定
    psql-U“some user name”
    [Manjunath MacBook Air:$sudo docker exec-it a2ff6075344e bash

    bash-5.0#psql-U postgres postgres

  • 因此,通过使用适当的用户名登录到psqlshell,问题得到了解决


这里,
-U postgres
指定连接到数据库的用户是“postgres”

我已经按照您的解释尝试过了,即使用密码“root”创建用户root;\q psql-U root:给出错误:致命数据库“root”不存在。@Abhishek:然后您需要指定要连接到哪个数据库(psql默认为与用户名相同的数据库名称)。或者,如果您为每个用户创建一个数据库,则需要使用该名称创建一个数据库。一定要阅读手册,手册就在其中。如果用户
postgres
不存在,那么第一行就不起作用。@Pere:这就是我写“例如postgres”的原因在之前的文本中。您需要使用Postgres安装中的超级用户。但这是安装Postgressory时的默认超级用户名,@a_horse_,with_no_name,这是我的错:我从问题中错误地理解用户无法使用
Postgres
user登录。不仅您的答案是完整的完全正确,但我的评论,加上我的反对票,没有任何意义。所以,我为你的编辑竖起大拇指,因为如果可能的话,这一点澄清会使它变得更好。你是否复制了我的问题,并使其成为一个新的?
psql (9.4.0)
Type "help" for help.

postgres=# create user root with password 'verysecret';
CREATE ROLE
postgres=# \q

c:\
c:\>psql -U root postgres
psql (9.4.0)
Type "help" for help.

postgres=>