PostgreSQL 13+: "[FireDAC][Phys][PG][libpq] authentication method 10 not supported." error

Here is infomation for all users that intend to use mAirList with version 13 and later of the PostgreSQL server:

PostgreSQL 13 (and later) uses the new scram-sha-256 password encryption by default, something that is not supported by the libpq.dll client library shipped with mAirList by the time of this writing (v6.3.6).

Thus, you will see the following error:

[FireDAC][Phys][PG][libpq] authentication method 10 not supported.

We are going to ship an updated libpq.dll in the near future. Until then, you can perform the following steps to work around the problem:

  • Edit postgresql.conf on the server, and change password_encryption = 'scram-sha-256' to password_encryption = 'md5'
  • Make sure md5 is used in pg_hba.conf for the authentication line that refers to your IP network.
  • Restart PostgreSQL service.
  • If the SQL user (login role) for your mAirList database has already been created, reset its password, so it is saved in md5 format.

Update 2021-10-28:

Here is a newer version of libpq.dll that should support the new scram-sha-256 password scheme: http://download.mairlist.com/other/libpq-13/libpq.dll

Just replace the existing libpq.dll file in your mAirList program folder (usually C:\Program Files (x86)\mAirList x.x).

Update 2020-10-22:

As the above DLL did not work for everyone, here is a complete package of a libpq.dll (32bit, version 10.8-2) along with all other DLLs it depends on:
libpq10.zip

To unstall it, download libpq10.zip, unzip and copy all content to your mAirList program folder C:\Program Files (x86)\mAirList x.x, overwriting the existing libpq.dll.

Unlike the previous version currently shipped with mAirList, this new libpql.dll may require that you install the Microsoft Visual C++ Redistributable (vcredist) package if it is not installed on your computer yet. You can download it here:

Important: You need to install the x86 (32-bit) version of vcredist, even if your Windows system is 64-bit.

If vcredist 2013 is missing, you will see the following message when connecting to your mAirListDB database:

[FireDAC][Phys][PGSQL]-314. Cannot load vendor library [LIBPQ.DLL]. The specified module could not be found. Check [LIBPQ.DLL], which is located in one of the PATH directories or in application EXE directory.

This may be slightly misleading, as the libpq.dll file itself is present, it is just a dependency (vcredist) that is actually missing.

We will not ship this new version by default at this point, as the vcredist dependency is likely to break the installation for many existing users, and most are using older PostgreSQL server versions (below 13) anyway.

1 Like

I was just doing these steps. But on the same pc it works. I can connect the db and i can also connect it to the playout software. But when i try to connect the database on the onair studio pc, it shows same error. “Authentication metho10 not supported”

This is the NEW PC. I want to connect this to Onair studio PC for playout. When i try that it shows the error.

Hallo @Torben, ich habe diesen Post gefunden, weil ich aktuell eine PostGre SQL Datenbank in einem Hetzner Webhosting als SQL Datenbank nutzen will und ich dann gelernt habe, dass man die dlls tauschen soll, wegen der Authentifizierung mit der neuen Methode in neueren PostGreSQL Datenbanken, die der Hetzner nutzt.

Ich habe das Zip entpackt und die Datein in das Verzeichnis gelegt. Die Fehlermeldung wegen der Methode 10 kommt nicht mehr, aber nun kommt dieser Fehler:

Kannst Du mir hier weiterhelfen, was ich noch anpassen muss?

Viele Grüße
Martin

Der Fehler bedeutet, dass du die x64-Version der libpq.dll dort abgelegt hast; benötigt wird aber die x86-Version (32bit), da mAirList eine 32bit-Anwendung ist.

Bei mAIrList 7 wird die passende DLL aber mittlerweile mitgeliefert, und es sollte keine Notwendigkeit mehr bestehen sie händisch auszutauschen.

Vielen Dank Torben für Deine schnelle Antwort. Wir sind noch auf Mairlist6. Ich hatte das ZIP entpackt und alle Dateien in das ML Verzeichnis gelegt. War das falsch? Bzw. wo kann ich denn entscheiden, dass ich die 32Bit Version der dll möchte?

Grüße
Martin

vcredist hast du auch installiert wie oben beschrieben?

(Vielleicht liegt es doch nicht an der bitness sondern an fehlenden Abhängigkeiten.)

Ja, das hab ich gemacht
Ich habe die x86 Version installiert