私は PostgreSQLを使用してDIESEL.RSチュートリアル に従うことを試みています。ディーゼルセットアップステップに到達すると、「認証方法10はサポートされていません」というエラーが発生します。どのように私はそれを解決するのですか?
これは錆固有の質問ではありません。この問題は、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
_
しかし、私はこれらのライブラリをコピーせずに私の問題を解決することができました。