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

时间:2015-02-02 11:26:52

标签: postgresql windows-7 windows-7-x64 roles

我在Windows中设置了PostgreSQL 9.1。

我无法对PostgreSQL做任何事情:无法创建b,无法创建用户;所有操作都返回错误消息

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

时创建的帐户名

但我可以使用以下方式连接:

 username : postgres  

如何使用角色root连接到postgres? 使用su命令here为linux平台提到了一个解决方案但是无法找到windows7的解决方案

先谢谢

3 个答案:

答案 0 :(得分:32)

如果您想使用用户名root登录Postgres,则需要先创建此类用户。

首先需要以Postgres超级用户身份登录。这通常为postgres(并在安装期间指定):

psql -U 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 are documented in the manual的所有参数。

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

答案 1 :(得分:0)

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

您需要execute initdb

答案 2 :(得分:0)

在postgres docker容器上还原数据库/表时出现了相同的问题。

  • 。当您从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 < testdb_pg_dump

  • 因此,通过使用适当的用户名登录psql shell,可以解决问题

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

相关问题