我有一个64位Postgres服务器和32位Windows应用程序。在我将Postgres从12升级到13之前,这一直工作得很好。新服务器运行良好,但应用程序在登录时抛出错误authentication method 10 not supported
。
我编辑了13/data/pg_hba.conf
,将所有条目中的认证方法从scram-sha-256
替换为md5
,重新启动服务器,但问题仍然存在。
我想我需要一个32位libpq.dll
的新版本,但无法从Postgres 10找到任何更新的版本。两个问题。libpq.dll
的新版本会解决这个问题吗?如果有,我在哪里能找到?
这个问题类似于PostgreSQL authentication method 10 not supported中描述的问题。在我的情况下,另一个困难是由于64位与32位不兼容,我无法从服务器安装中获取dll。我刚刚找到了一个解决方案,并将其发布,可能对其他人在相同的情况下有用。
从本页下载Postgres 10.17 Win x86-32的二进制文件。您可以在lib
文件夹中找到文件libpq.dll
,但这还不够,因为它需要另外两个(新)库:libcrypto-1_1.dll
和libssl-1_1.dll
。复制这些库并使其可用于32位应用程序。这三个库是正确登录所必需的。lib
文件夹包含更多应用程序可能需要的库。
请注意,认证方法scram-sha-256
比md5
更安全,因此没有理由用问题中描述的方式替换它。