我一直在开发一个使用 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 <新用户角色>