psql致命错误 角色不存在

33 浏览
0 Comments

psql致命错误 角色不存在

我最近安装了最新版本的Ubuntu,我还没有习惯。我在连接PostgreSQL和pgadmin3时出现了几个问题。

我尝试了几个教程来创建本地主机服务器,以便在pgadmin3中使用。但我并没有真正达到目标,并且我认为通过安装、卸载、安装、卸载和尝试我找到的答案,情况变得更糟了...现在我不确定我的PostgreSQL是否干净。可能我安装了两个PostgreSQL,再次说明,我不确定。我试图卸载它,但我遇到了一个错误,基本上说PostgreSQL不在sudo中。

问题是现在在控制台中运行psql时出现了这个错误:

$psql
psql: FATAL: role "user" does not exist 

我找不到pg_hba.conf,现在我太害怕尝试其他帖子而使情况变得更糟了。

我该如何使它正常工作?

admin 更改状态以发布 2023年5月21日
0
0 Comments

sudo -u postgres createuser user

这可能会帮助您创建一个具备postgres所有权限的新用户

0
0 Comments

正如评论中指出的那样,您的pg_hba.conf看起来很好。

通常情况下,数据库将以postgres用户身份运行(检查 ps aux | grep postgres 以找出postgres正在运行的用户名)。

作为该用户登录,例如sudo su - postgres,然后创建一个与您的普通Ubuntu用户帐户匹配的用户(createuser username),最后创建一个具有相同名称且将所有者(-O )设置为该数据库用户的数据库,例如:createdb -O username username)。

这应该使调用psql工作,而pgadmin(只要您以默认用户username启动它)也应该正常工作。

编辑:默认情况下,psql将使用您的Linux用户名作为数据库用户名和数据库名称的默认值。您可以通过使用-U someotherusername来覆盖用户名,并通过将该DB名称添加到命令行来连接到不同的数据库,例如psql someotherdbname。您可能还会发现psql -l有用来列出现有的数据库。

0