问题 无法创建用户postgres:角色“postgres”不存在


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


7736
2018-03-23 20:33


起源

什么是输出 sudo pg_lsclusters ? - A.H.
@啊。命令 pg_lsclusters 没找到。它让我安装 postgresql-common 包。我试着以root用户身份做,我收到了一个错误。它试图删除 postgres-xc 和 dpkg: error processing postgres-xc (--remove): 然后退出 - ktkaushik


答案:


结果我安装了 postgres-xc 和 postgresql 在我的机器上。我不得不彻底击倒postgres-xc。这样做有点困难,因为总是有错误 --purge remove postgres-xc 并且卸载无法继续。

似乎有某种包装错误。 (启动板上的详细信息)。

最终,我最终做了 这个 使它工作。

之后我卸载了postgresql并重新安装它以使其工作。


9
2018-03-25 07:37



我有一个类似的问题。卸载postgresql时,请确保停止所有postgres进程,删除unix用户 postgres,还删除了锁定文件 /var/run/postgresql。 - osa
@SergeyOrshanskiy谢谢你。我记得我最终通过做你所说的几乎解决了。 :) - ktkaushik
postgres-xc显然也搞砸了我的postgres设置。同样的修复对我有用! - Dan Burton


postgresql教程 无论是Ubuntu还是其他Linux都没关系。

编辑 在全新安装上创建角色或其他任何内容之前,您需要创建数据库集群:您创建了它吗?

initdb -D /usr/local/pgsql/data

您需要以用户身份登录 postgres 在linux机器上。 这里 更多信息。


1
2018-03-23 20:38



是的。我正在按照步骤操作,但我无法创建用户。角色 postgres 不存在创建角色 postgres。多数民众赞成在混淆我的是什么。任何想法 ? - ktkaushik
@Ladislav:Debian(以及Ubuntu)拥有用于管理PostgreSQL数据库和集群的自定义脚本和约定。使用普通的PG命令会带来更多的伤害。特别是对非专家。 - A.H.
@啊。不知道debian和ubuntu,我正在使用slackware。同 initdb 你不会损害你的安装,而是创建数据库集群。它将创建文件 /usr/local/pgsql/data如果出现问题,你可以将其删除并从头开始。 - 1ac0
问题:重新启动时可能无法获取此新数据库。并行拥有多个数据库版本将无法正常工作。多个群集不起作用。等等。做 您 想通过聊天来解决这个烂摊子的问题 什么 不管用? - A.H.
@ A.H.i很乐意聊天并寻求帮助! - ktkaushik