无法创建用户 postgres:角色“postgres”不存在
Posted
技术标签:
【中文标题】无法创建用户 postgres:角色“postgres”不存在【英文标题】:unable to create user postgres: role "postgres" does not exists 【发布时间】:2013-03-13 13:45:28 【问题描述】:我在 ubuntu 12.04 服务器上,我正在尝试安装 postgresql。截至目前,我已成功安装它,但无法配置它。我需要创建一个角色才能继续前进,我在终端中运行了这个命令:
root@hostname: createuser -s -r postgres
它说:
createuser: could not connect to database postgres: FATAL: role "root" does not exist
很好,我做到了:
su - postgres
然后又试了一次
postgres@hostname: createuser -s -r postgres
我得到了错误
createuser: could not connect to database postgres: FATAL: role "postgres" does not exist
当我这样做时,我得到了同样的错误
psql -d dbname
它就像一个循环,我无法创建角色 postgres
,因为角色 postgres
尚不存在。
我该如何解决这个问题?
postgres版本好像是9.1.x,ubuntu版本好像是12.10
【问题讨论】:
sudo pg_lsclusters
的输出是什么?
@A.H.找不到命令pg_lsclusters
。它要求我安装postgresql-common
包。我尝试以 root 用户身份进行操作,但出现错误。它尝试删除 postgres-xc
和 dpkg: error processing postgres-xc (--remove):
然后退出。
【参考方案1】:
原来我已经在我的机器上安装了postgres-xc
和postgresql
。我不得不完全关闭 postgres-xc。这样做有点困难,因为总是出现错误--purge remove postgres-xc
,并且无法继续卸载。
似乎存在某种打包错误。 (details on launchpad)。
最终,我最终使用了this 来让它发挥作用。
之后我卸载了 postgresql 并重新安装以使其正常工作。
【讨论】:
我遇到了类似的问题。卸载postgresql时,一定要停止所有postgres进程,删除unix用户postgres
,同时删除/var/run/postgresql
中的锁文件。
@SergeyOrshanskiy 谢谢。我记得我最终通过按照你说的做了很多事情来解决。 :)
postgres-xc 显然也弄乱了我的 postgres 设置。同样的修复对我有用!【参考方案2】:
阅读postgresql tutorial不管是Ubuntu还是其他Linux。
编辑 在全新安装时创建角色或其他任何内容之前,您需要创建数据库集群:您创建了吗?
initdb -D /usr/local/pgsql/data
您需要在 Linux 机器上以用户 postgres
的身份登录。 Here 是更多信息。
【讨论】:
是的。我正在按照步骤操作,但无法创建用户。角色postgres
不存在以创建角色 postgres
。这就是让我困惑的地方。有什么想法吗?
@Ladislav:Debian(因此也包括 Ubuntu)具有用于管理 PostgreSQL 数据库和集群的自定义脚本和约定。使用简单的 PG 命令弊大于利。特别是对于非专家。
@A.H.不了解 debian 和 ubuntu,我正在使用 slackware。使用initdb
不会损害您的安装,它用于创建数据库集群。它将在/usr/local/pgsql/data
中创建文件,如果出现问题,您可以将其删除并从头开始。
问题:这个新数据库可能不会在重新启动时被拾取。并且并行拥有多个数据库版本是行不通的。多个集群将不起作用。等等。如果 anything 不起作用,您是否想通过聊天来解决问题?
@A.H.i 很想聊天并寻求帮助!以上是关于无法创建用户 postgres:角色“postgres”不存在的主要内容,如果未能解决你的问题,请参考以下文章
无法混合ecto.create,角色'postgres'不存在[重复]
Createuser:无法连接到数据库 postgres:致命:角色“tom”不存在