角色“postgres”不存在;无法创建用户

Posted

技术标签:

【中文标题】角色“postgres”不存在;无法创建用户【英文标题】:role "postgres" does not exist; cannot createuser 【发布时间】:2015-08-16 20:09:33 【问题描述】:

我使用的是 Linux Mint Cinnamon 2.2.16。

在启动和运行 Rails 的过程中,我遇到了 Postgres 的问题。

postgres@BL ~ $ psql --version
psql (Postgres-XC) 1.1
(based on PostgreSQL) 9.2.4

我无法使用我常用的用户名进行任何操作,因此我更改为默认用户使用

sudo su - postgres

我无法使用 createuser 进行任何操作。

postgres@BL ~ $ psql
psql: FATAL:  role "postgres" does not exist

postgres@BL ~ $ createuser -s -U $USER
createuser: could not connect to database postgres: FATAL:  role "postgres" does not exist

postgres@BL ~ $ sudo -u postgres createuser newname
Sorry, user postgres is not allowed to execute '/usr/bin/createuser newname' as postgres on BL.

postgres@BL ~ $ which psql
/usr/bin/psql
postgres@BL ~ $ psql \l
psql: FATAL:  role "postgres" does not exist

【问题讨论】:

试试这个解决方案:***.com/questions/15301826/… 我没有得到 $ psql \l 的输出,而是给了我同样的致命错误:角色“postgres”不存在。让我觉得我根本没有用户,但需要用户创建用户...? 【参考方案1】:

在彻底研究了这个问题并扯掉了几根头发之后,我认为这是打包/安装问题的某种变体,此处记录了类似的问题:unable to create user postgres: role "postgres" does not exists

我按照下面的方法进行了完全卸载,然后在没有 postgresql-xc 的情况下重新安装

How to thoroughly purge and reinstall postgresql on ubuntu?

新安装的用户“postgres”具有预期的行为,我能够将自己添加为超级用户并创建新数据库。经过一些安装后的修改后,Rails 似乎可以运行并且与 postgres 配合得很好。

【讨论】:

【参考方案2】:

您必须以超级用户身份向 psql 进行身份验证才能管理用户。 例如

psql -U 根

之后

使用密码“paige”创建用户paige;

【讨论】:

不幸的是,这里出现了同样的错误。 postgres@BL ~ $ psql -U root psql: FATAL: 角色“root”不存在 你还记得你第一次安装postgres时使用的用户名吗? 我不相信我创建了一个具有唯一名称的用户,尽管它确实询问我是否想为“管理员'root'用户”创建一个密码,我做到了。除了 admin、root、user 或 postgres 之外还有其他标准用户名吗?

以上是关于角色“postgres”不存在;无法创建用户的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 不创建角色

无法混合ecto.create,角色'postgres'不存在[重复]

Createuser:无法连接到数据库 postgres:致命:角色“tom”不存在

Postgresql 角色无法访问其创建的架构

Postgres:为不同角色/用户创建的未来表授予对角色/用户的访问权限

postgres仅在不存在时创建用户[重复]