psql致命错误 角色不存在
psql致命错误 角色不存在
我最近安装了最新版本的Ubuntu,我还没有习惯。我在连接PostgreSQL和pgadmin3时出现了几个问题。
我尝试了几个教程来创建本地主机服务器,以便在pgadmin3中使用。但我并没有真正达到目标,并且我认为通过安装、卸载、安装、卸载和尝试我找到的答案,情况变得更糟了...现在我不确定我的PostgreSQL是否干净。可能我安装了两个PostgreSQL,再次说明,我不确定。我试图卸载它,但我遇到了一个错误,基本上说PostgreSQL不在sudo中。
问题是现在在控制台中运行psql时出现了这个错误:
$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(只要您以默认用户username启动它)也应该正常工作。
编辑:默认情况下,psql
将使用您的Linux用户名作为数据库用户名和数据库名称的默认值。您可以通过使用-U someotherusername
来覆盖用户名,并通过将该DB名称添加到命令行来连接到不同的数据库,例如psql someotherdbname
。您可能还会发现psql -l
有用来列出现有的数据库。