关于postgresql:psql致命角色不存在

psql fatal role does not exist

我最近安装了最新版本的ubuntu,我还不习惯。 我有几个问题连接postgresql与pgadmin3。

我尝试按照几个教程创建一个localhost服务器,我可以在pgadmin3中使用它。 我没有真正达到标准,我认为通过安装,卸载,安装,卸载,尝试我找到的答案,我做得更糟......此时我不确定我的postgres是否干净。 我可能有两个postgres安装,再次,我不 我试图卸载它,但我有一个错误,基本上说postgres不在sudo。

问题是我现在在控制台中运行psql时出现此错误:

1
2
$psql
psql: FATAL: ROLE"user" does NOT exist

我找不到pg_hba.conf,在这一点上,我太害怕通过尝试跟随任何其他帖子来使事情变得更糟。

我怎么能做这个工作?


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

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

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

这应该使调用psql工作,而pgadmin - 只要你启动它作为你的默认用户,用户名 - 也应该工作。

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


1
sudo -u postgres createuser USER

可以帮助您创建具有postgres所有权限的新用户


使用postgres用户:

1
sudo su postgres

然后使用psql。

如果您仍然遇到问题,请检查以下链接:PostgreSQL错误:致命:角色"用户名"不存在


在Windows 10中,这很好用

pg_restore --format = c --verbose --no-owner --no-privileges --dbname = MYDB --username = postgres --no-password --jobs = 8 F:/MYBK.backup

--username =(role)和--no-password是必需的