无法使用 psql“sudo:未知用户”“sudo:无法初始化策略插件”

无法使用 psql“sudo:未知用户”“sudo:无法初始化策略插件”

我一直在开发一个使用 PostgreSQL 数据库的 Discord 机器人,并尝试将其安装在 Vultr 服务器(Ubuntu 20.04)上。一切都运行良好,直到我尝试在服务器内部创建数据库,我一直尝试遵循多个指南进行设置,但每当我尝试运行任何 postgres/psql 命令时,例如sudo -u postgres createuser --interactive我收到一条错误消息could not change directory to "/root": Permission denied

当我尝试登录使用创建的用户时,sudo -u araraura psql出现错误消息“sudo: unknown user: araraura和” sudo: unable to initialize policy plugin

我已经在网上搜索了一天来寻找解决方案,但就是找不到适合我的解决方案。

答案1

我在运行 postgresSQL 12 版本的 ubuntu 20.04 版本上遇到了同样的问题,解决方法如下:

  • pg_hba.conf用你喜欢的编辑器打开文件
  • 例子:sudo nano /etc/postgresql/12/main/pg_hba.conf

然后你会看到类似这样的内容:-

#local         DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
#host          DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
#hostssl       DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
#hostnossl     DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
#hostgssenc    DATABASE  USER  ADDRESS  METHOD  [OPTIONS]

从取消注释本地的第一行中删除 #,并用以下内容替换:-

local         all       all            trust

本地是您管理 Unix 域套接字连接的方式,现在您可以无需密码提示连接数据库,如果您希望在连接数据库时被询问密码,请将“信任”方法更改为“md5”,然后运行以下命令:

psql -U your_username db_name 

答案2

要使用新创建的用户角色登录 psql,您需要一个与新 Postgres 角色同名的 Linux 用户。

将新创建的用户添加为 Linux 用户

  • sudo adduser <新用户角色>

相关内容