web-dev-qa-db-ja.com

PostgreSQL認証方法10はサポートされていません

私は PostgreSQLを使用してDIESEL.RSチュートリアル に従うことを試みています。ディーゼルセットアップステップに到達すると、「認証方法10はサポートされていません」というエラーが発生します。どのように私はそれを解決するのですか?

1
chasahodge

これは錆固有の質問ではありません。この問題は、SCRAM-SHA-256認証方法をサポートしていないPostgres DBに接続するアプリケーションに適用されます。私の場合、Postgresに接続するPerlアプリケーションに問題がありました。

これらのステップはベースとしています POST上の

最新のPostgresクライアントをインストールする必要があります。この例では、クライアントBINディレクトリ(SRC)は "C:\ Program Files\PostgreSQL\13\bin"です。ターゲット(TRG)ディレクトリは、アプリケーションバイナリがインストールされている場所です。 "C:\ Strawberry\C\bin"。 Postgres DBをエラー "... Authentication Method 10ではサポートされていない..."でPostgres DBを接続しようとしました。

set SRC=C:\Program Files\PostgreSQL\13\bin
set TRG=C:\Strawberry\c\bin

dir "%SRC%\libpq.dll"         # to see the source DLL
dir "%TRG%\libpq__.dll"       # to see the target DLL. Will be replaced from SRC

cp "%SRC%\libpq.dll" %TRG%\.

cd %TRG%
pexports libpq.dll > libpq.def 
dlltool --dllname libpq.dll --def libpq.def --output-lib ..\lib\libpq.a

move "%TRG%"\libpq__.dll "%TRG%"\libpq__.dll_BUP # rename ORIGINAL name to BUP
move "%TRG%"\libpq.dll "%TRG%"\libpq__.dll       # rename new DLL to ORIGINAL
 _

この時点で、私のPerlスクリプトからPostgresに正常に接続できました。

上記の最初の投稿はまた、ソースからターゲットに他のDLLをコピーすることをお勧めします。

libiconv-2.dll
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
libintl-8.dll
 _

しかし、私はこれらのライブラリをコピーせずに私の問題を解決することができました。

0
VladZ