如何解决这个问题以使用 psql? | psql:错误:致命:角色“postgres”不存在

Posted

技术标签:

【中文标题】如何解决这个问题以使用 psql? | psql:错误:致命:角色“postgres”不存在【英文标题】:How do I solve this problem to use psql? | psql: error: FATAL: role "postgres" does not exist 【发布时间】:2021-03-21 04:30:40 【问题描述】:

我在使用 PostgreSQL 时遇到问题。我最近在ubuntu 20.04中安装了这个版本(13+223.pgdg20.04+1)的postgresql包。

我正在尝试运行psql 命令,但出现以下错误:

psql:错误:致命:角色“my_username”不存在

我尝试使用createuser me 创建新用户,但出现以下错误:

createuser:错误:无法连接到数据库模板 1:致命:角色“my_username”不存在

我也尝试使用createuser me --username=postgres 强制 postgres 用户,但我收到以下错误:

createuser: error: could not connect to database template1: FATAL: Peer authentication failed for user "postgres"

如何解决这些问题以在我的计算机上本地使用 PostgreSQL 而不会出现这些问题?

PD:我已经重新安装了 postgres,现在我在执行 psql 时遇到了另一个错误:

psql:错误:无法连接到服务器:没有这样的文件或目录 服务器是否在本地运行并接受 Unix 域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?

【问题讨论】:

【参考方案1】:

对等身份验证意味着(有高级的可能性,但默认情况下不会使用这些,而简单的方法是 apt 安装的 PostgreSQL 的默认方法),您必须是操作系统用户“postgres”才能连接为数据库用户'postgres'。所以你会这样做:

sudo -u postgres createuser me

您无需指定--username=postgres,因为这是您使用sudo -u postgres 后的默认行为

或者,如果您愿意,您可以更改您的 pg_hba.conf 以使用对等以外的其他身份验证方法。

【讨论】:

【参考方案2】:

我不知道为什么我的安装不好,但是我在这篇文章之后完全卸载了 postgres:

https://kb.objectrocket.com/postgresql/how-to-completely-uninstall-postgresql-757

之后,我重新启动计算机并按照以下正确说明再次安装 posgres:

https://www.postgresql.org/download/linux/ubuntu/

现在看起来它可以正常工作了

【讨论】:

【参考方案3】:

您需要在psql 命令中使用-U 选项提供用户名。

psql -U postgres

Postgresql 带有一个名为postgres 的预定义超级用户角色。如果您想创建更多角色,您首先必须以该初始角色的身份进行连接。

【讨论】:

它没有用,但我已经重新安装了 postgre(我有 2 个版本,我已经卸载了两个版本并安装了最后一个版本),现在命令“psql”显示了一个不同的错误:psql:error :无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接?

以上是关于如何解决这个问题以使用 psql? | psql:错误:致命:角色“postgres”不存在的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 psql 以 CSV 格式导出 Redshift 集群的数据

如何在plpgsql中读写psql变量

如何在 psql 中使用脚本变量?

i psql 权限被拒绝

PSQL 是在推断模式,但是如何推断?

在 sql psql 我看不到我的表并以这个错误结束