无法将ASP.NET Core应用连接PostgreSQL,CentOS部署遇Ident认证失败
解决PostgreSQL Ident认证失败的问题
我太懂这种抓瞎的感觉了!这个错误其实是PostgreSQL默认的认证机制在作祟,别担心,几步就能搞定:
1. 找到并修改pg_hba.conf配置文件
PostgreSQL的认证规则都存在这个文件里,CentOS系统下它的常见路径是:
/var/lib/pgsql/data/pg_hba.conf(针对系统包安装的PostgreSQL)- 如果是源码编译或其他方式安装,可能在
/etc/postgresql/<你的版本号>/main/pg_hba.conf
打开文件后,找到和postgres用户相关的本地连接规则,你会看到类似这样的行:
local all postgres ident host all postgres 127.0.0.1/32 ident
把ident替换成md5(或新版本PostgreSQL推荐的scram-sha-256),修改后变成:
local all postgres md5 host all postgres 127.0.0.1/32 md5
2. 重启PostgreSQL服务
修改配置后必须重启服务才能生效,CentOS下执行命令:
systemctl restart postgresql # 或者旧版本用 service postgresql restart
3. 确认你的连接字符串正确
检查ASP.NET Core项目里的appsettings.json(或其他配置文件),确保连接字符串包含正确的密码,格式应该是:
"ConnectionStrings": { "DefaultConnection": "Host=localhost;Database=你的数据库名;Username=postgres;Password=你的postgres密码" }
注意:别漏掉Password字段,而且密码要和PostgreSQL中postgres用户的密码完全一致
如果做完这些还是有问题,可以去查看PostgreSQL的日志文件(通常在/var/lib/pgsql/data/log/目录下),里面会有更详细的错误信息帮你定位问题。
内容的提问来源于stack exchange,提问作者Shaggs
相关产品推荐
相关产品推荐

