javascript - 为什么 postgres 以 hostname = /var/run/postgresql 运行?
问题描述
我一直在尝试pg
使用连接到我的本地 postgres 实例
const pool = new Pool({
user: "my_user",
host: "localhost",
database: "my_db",
password: "password",
port: 5432,
});
但它从来没有奏效,而且我反复得到一个错误说error: Ident authentication failed for user "my_user"
。我摆弄了一段时间的 postgres 用户/角色以确保my_user
拥有数据库和表,但后来我注意到psql -d my_db -U my_user -h localhost
失败并出现与上述相同的错误。经过一番搜索,我发现使用
host: "/var/run/postgresql"
解决了这个问题,但我不确定我明白为什么。我应该可以使用localhost
吗?这似乎是大多数人设置这些东西的默认设置。我在 Fedora 33 上,只安装了 postgres,所以也许它与全新安装有关?
解决方案
您已将 pg_hba.conf 设置为对来自 localhost 的连接使用“ident”身份验证。我不认为这是一个非常常见的配置。我不认为这是默认设置,我不知道您为什么要对其进行编辑以使其做到这一点,但显然这就是发生的事情。(在我的手中,仅仅在fedora 33上安装数据库软件并不会自动创建数据库,你必须做一些事情才能做到这一点。如果你按照教程,请链接到它)
如果你想使用“ident”身份验证,那么在日志文件中查看它失败的原因,然后修复它(也许你需要安装 oidentd?)。如果您不想使用它,请编辑 pg_hba,以免使用“ident”。
推荐阅读
- c# - WPF:MVVM上的窗口之间的通信
- r - 为什么 foreach 和 ginv 在 R 中不能一起工作
- mysql - 将值插入到具有日期数据类型的表中
- php - SMS 消息的字符编码问题
- r - "could not find function ggplot" - R
- python - Making a game but stuck on calling functions
- django - Django __str__ gives object has no attribute error with a foreign key
- vim - oh-my-zsh agnoster RPROMPT
- node.js - node.js + mongodb:等待查询完成
- python - 从函数返回数组索引