如何解决这个问题以使用 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”不存在的主要内容,如果未能解决你的问题,请参考以下文章