小编典典

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

all

我正在设置我的 PostgreSQL 9.1。我不能用 PostgreSQL
做任何事情:不能createdb,不能createuser;所有操作都返回错误信息

Fatal: role h9uest does not exist

h9uest是我的账号名,我sudo apt-get install在这个账号下是PostgreSQL 9.1。该帐户
仍然存在类似错误。root


阅读 101

收藏
2022-02-28

共1个答案

小编典典

使用 操作系统用户 postgres创建您的数据库 - 只要您没有设置具有与您的同名操作系统用户相对应的必要权限的
数据库h9uest角色(在您的情况下):

sudo -u postgres -i

正如这里这里推荐的那样。

然后再试一次。exit以系统用户身份操作完成后键入postgres

或者createuserpostgreswith一样执行单个命令sudo,就像drees在另一个答案中所展示的那样。

关键是使用与同名数据库角色匹配的操作系统用户通过 ident
身份验证
获得访问权限。postgres是初始化数据库集群的默认操作系统用户。手册:

为了引导数据库系统,一个新初始化的系统总是包含一个预定义的角色。此角色始终是“超级用户”,默认情况下(除非在运行时更改initdb),它将与初始化数据库集群的操作系统用户具有相同的名称。通常,此角色将命名为postgres.
为了创建更多角色,您首先必须作为这个初始角色进行连接。

我听说过使用非标准用户名或操作系统用户不存在的奇怪设置。你需要在那里调整你的策略。

在手册中阅读有关数据库角色客户端身份验证的信息。

2022-02-28