![psql:严重错误:主机“[local]”、用户“root”、数据库“root”没有 pg_hba.conf 条目,SSL 已关闭](https://linux22.com/image/713067/psql%EF%BC%9A%E4%B8%A5%E9%87%8D%E9%94%99%E8%AF%AF%EF%BC%9A%E4%B8%BB%E6%9C%BA%E2%80%9C%5Blocal%5D%E2%80%9D%E3%80%81%E7%94%A8%E6%88%B7%E2%80%9Croot%E2%80%9D%E3%80%81%E6%95%B0%E6%8D%AE%E5%BA%93%E2%80%9Croot%E2%80%9D%E6%B2%A1%E6%9C%89%20pg_hba.conf%20%E6%9D%A1%E7%9B%AE%EF%BC%8CSSL%20%E5%B7%B2%E5%85%B3%E9%97%AD.png)
在我们的 Linux 服务器上,我们有 PostgreSQL DB
当我们输入 -
psql -l
我们得到
psql: FATAL: no pg_hba.conf entry for host "[local]", user "root", database "postgres", SSL off
为了解决这个问题,我们需要在 /var/lib/pgsql/data/pg_hba.conf 中设置什么?
答案1
要列出数据库,您可以以postgres
用户身份执行命令:
$ sudo su postgres -c 'psql -l'
如果您已经以 root 身份登录,则可以sudo
从上述命令中删除。用户postgres
被视为 PostgreSQL 数据库引擎的 root 用户。
您的帖子中显示的错误表明用户无权root
访问localhost
数据库postgres
。因此,您可以编辑pg_hba.conf
文件以包含所需的登录详细信息,如登录名、数据库名称和主机。该文件有详尽的文档。
对于您的情况,您可以将以下行添加到pg_hba.conf
文件:
local all root peer
保存更改后,您需要重新加载 postgresql 服务器。