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

PostgreSQL error Fatal: role “username” does not exist

我正在 windows 中设置我的 PostgreSQL 9.1。

我无法使用 PostgreSQL 执行任何操作:无法创建数据库,无法创建用户;所有操作return错误信息

严重:根角色不存在
root 是我的账户名,是我在安装时创建的Postgresql

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

 username : postgres  

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

的解决方案

提前致谢

如果您想使用用户名 root 登录 Postgres,您需要先创建这样一个用户。

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

psql -U postgres <user-name>

然后就可以创建角色和数据库了:

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 用户必要的权限。

psqlare documented in the manual的所有参数。

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

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

你需要execute initdb.

在 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 < testdb_pg_dump

  • 因此,通过使用适当的用户名

    登录到 psql shell,问题得到解决

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