我将npgsql用于postgresql13,但在尝试连接时收到以下错误:
目前仅支持身份验证明文密码和身份验证MD5密码。已收到10个
我的连接线是:NpgsqlConnection conn=new NpgsqlConnection(“服务器=xxxx;端口=xxxx;用户ID=xxxx;密码=xxx;数据库=数据库;”)
在PostgreSQL 11.3中一切运行正常,但它已迁移到版本13就出现这种问题
1.查询了很多资料 有的说是修改 C:\Program Files\PostgreSQL\13\data 中的 pg_hba.conf 文件
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
改成mds 或者 scram-sha-256 但是都没有效果
亲测改成 trust 可以解决 但是安全等级可能有差异 看个人选择
--------------------------------------------2023-12-8更新--------------------------------------------
若是使用.net framework 开发的话 npgsql最高能使用到 4.0.13版本 同时相关的引用依赖项需要拷贝到bin文件夹,以及注意对应的引用依赖项的版本。
同时 改设置 从 scram-sha-256 改成md5 或者password 的话 密码最好提前修改 不然原来的密码还是保存的是 sha-256 同理 password或者 md5 改成 scram-sha-256 也一样。如下图
不然同样的密码 验证方式不一样 会导致无法登陆