首页 > 解决方案 > POSTGRES:致命:角色“用户名”不存在

问题描述

真的很难让 Postgres 建立起来。我已经用自制软件(版本 14)安装了它。并通过网站安装了 Postgres 应用程序。

当我在终端中输入命令“psql”时,会出现以下错误:

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: FATAL:  role "edac" does not exist

我的服务器在端口 5432 上运行。

任何帮助将不胜感激。

标签: postgresql

解决方案


Postgres 的标准安装peerpg_hba.conf. 如果您在psql没有参数的情况下开始,它看起来会连接与当前操作系统用户同名的数据库角色 - 在您的情况下显然是“edac”。

您可以在数据库中创建这样的角色(并向其授予所需的权限),或者使用不同的(现有)角色进行连接。在全新安装中,至少存在数据库角色“postgres”,即超级用户。

您可以使用用户名和密码登录。或者更简单,以操作系统用户“postgres”的身份连接以允许使用同名数据库角色进行对等身份验证。喜欢:

sudo -u postgres psql

然后您可能想要创建一个名为“edac”的数据库角色(没有超级用户权限):

CREATE ROLE edac;

或者,使用 shell 命令createuser一步完成:

sudo -u postgres createuser edac

看:


推荐阅读