角色"postgres"不存在;无法创建用户。
角色"postgres"不存在;无法创建用户。
我使用的是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
经过彻底研究问题并拔了不少头发后,我决定这是一种与打包/安装有关的问题的变体,类似于这里提到的问题:unable to create user postgres: role "postgres" does not exists
我按照以下步骤进行了完全卸载,并在重新安装时不安装postgresql-xc。
How to thoroughly purge and reinstall postgresql on ubuntu?
新安装的版本在用户"postgres"上有了预期行为,我能够将自己添加为超级用户并创建新的数据库。在进行了一些后期安装操作后,Rails似乎与postgres正常运行并且相互兼容。
(role "postgres" does not exist; cannot createuser)这个问题的出现是因为在管理用户时,需要使用超级用户身份进行身份验证。解决方法是使用超级用户身份登录psql。例如,可以使用以下命令进行登录:
psql -U root
。然后可以使用
create user paige with password 'paige';
命令创建用户。然而,如果在使用
psql -U root
命令时遇到了相同的错误,如下所示:
postgres ~ $ psql -U root
psql: FATAL: role "root" does not exist
那么可能是在安装PostgreSQL时没有创建一个唯一名称的用户。尝试回忆一下在安装PostgreSQL时使用的用户名。也许除了admin、root、user或postgres之外还有其他标准用户名。