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

1045

我正在设置我的PostgreSQL 9.1。我无法使用PostgreSQL做任何事情:不能创建数据库,不能创建用户,所有操作都返回错误消息。

我正在配置PostgreSQL 9.1,但无法执行创建数据库或创建用户等任何操作,所有操作都返回错误消息。

Fatal: role h9uest does not exist

h9uest 是我的账户名,在这个账户下我使用 sudo apt-get install 安装了 PostgreSQL 9.1。
root 账户出现了类似的错误。


2
之后你可能会遇到FATAL: role "user" is not permitted to log in的问题,请参考http://dba.stackexchange.com/questions/57723/superuser-is-not-permitted-to-login。 - the
32
我在这里回答了这个问题:https://dev59.com/VWUp5IYBdhLWcg3wY29V#31712520。同时也请阅读这篇教程:“如何在Ubuntu Linux上安装Postgres”。 - ruzenhack
1
@Ruzenhack 那个教程链接正是我所需要的!非常清晰简单。 - dwanderson
9
使用以下命令登录本地PostgreSQL数据库:psql -h localhost -U postgres。 - Metin Atalay
1
如果你遇到了 role doesn't existcan't create role, it already exists 的错误,请查看这个答案:https://dev59.com/T6Dia4cB1Zd3GeqPH7Ni#56658832 - Jonathan
显示剩余2条评论
19个回答

8

在本地用户提示符中(而不是root用户提示符),输入

sudo -u postgres createuser <local username>

然后输入本地用户的密码。

接着输入之前生成“role 'username' does not exist.”的命令。

以上步骤对我来说解决了问题。如果还有问题,请发送上述步骤的终端消息。


7

5
手动创建一个数据库集群解决了我的问题。
由于某种原因,当我安装Postgres时,“初始DB”没有被创建。执行initdb对我很有帮助。
这个解决方案在PostgreSQL Wiki - First steps中提供:

initdb

通常情况下,将Postgres安装到您的操作系统会创建一个“初始DB”,并启动Postgres服务器守护程序运行。如果没有,则需要运行initdb


4
sudo -u postgres createuser --superuser $USER

sudo -u postgres createdb $USER

这对你来说绝对有效。


2

使用--no-owner --no-privileges标志进行转储和恢复

例如:

转储 - pg_dump --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname > /tmp/full.dump

恢复 - pg_restore --no-owner --no-privileges --format=c --dbname=postgres://userpass:username@postgres:5432/schemaname /tmp/full.dump

"Original Answer"的翻译是"最初的回答"


0

对于那些使用Docker并正确遵循官方文档指示的人,如果您仍然遇到此问题,请重新启动Windows并重试。


-2

按照以下步骤操作,它会为您工作:

  1. 运行 msfconsole
  2. 键入 db_console
  3. 一些信息将显示给您,选择告诉您进行以下操作的信息:db_connect user:pass@host:port.../database 抱歉我不记得了,但是它就像这个,然后用包含在 database.yml 中的信息替换用户、密码、主机和数据库,该文件位于位置:/usr/share/metasploit-framework/config
  4. 您将看到。在后台重建模型缓存。
  5. 更新后输入 apt-get update && apt-get upgrade,重新启动终端并启动 msfconsole,然后通过在 msfconsole: msf>db_status 中键入来检查它是否连接。

-3

按照以下步骤来使postgres工作正常。

  1. 在终端中,使用以下命令找到应用程序支持文件夹。 /Users/[用户名]/library/application support
  2. 删除应用程序Postgres。
  3. 重新安装应用程序,它应该可以正常工作。

-5

只是将端口从5432改为5433这样简单的操作对我起了作用。


与此问题直接无关。 - Tsar Bomba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接