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在这里无关紧要。 您正尝试使用用户名user进行连接 - 但该帐户/用户名/角色不存在。 启动psql时,需要使用-U开关指定现有数据库用户
-
由于错误消息来自psql,您已经连接到DBMS,不需要乱用pg_hba.conf。 如消息所示:用户名"user"不存在。 BTW:user对于用户来说是一个糟糕的名字。 你会打电话给你的孩子child吗?
-
我不清楚,但不是用户,这是我写的会话的名称。 我今晚会尽力而为。
-
可能重复的PostgreSQL错误:致命:角色"用户名"不存在
正如评论中指出的那样,你的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对列出现有数据库很有用。
-
您不一定需要该用户的数据库。 启动psql:psql db_name时可以指定数据库
-
我添加了一个编辑来澄清这一点。 但是在大多数情况下,你需要调用没有参数的psql来"正常工作",这就是我的答案所关注的。
-
嗨,谢谢你的回答,
-
对不起双贴你好,谢谢你的帮助,现在对postgres来说很好。 仍然,我无法连接到pgadmin3,似乎pgadmin3不支持服务器版本,但这是另一个话题......无论如何,再次感谢。
-
sudo su - postgres ------ createuser jonny -------- createuser: creation of new role failed: ERROR: role"jonny" already exists --------- exit; whoami; ------- jonny ----- ----- psql ---------- FATAL: role"jonny" does not exist
1
| sudo -u postgres createuser USER |
可以帮助您创建具有postgres所有权限的新用户
-
登录$ sudo su - postgres,然后连接到$ psql psql(9.5.14)输入"help"获取帮助。Postgres的=#
使用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是必需的