From your first link, I downloaded the most recent version of the MariaDB driver (3.1.9) and added that to my HeidiSQL setup. On connection with that driver, I get the following (same) error:
SSL connection error: no cipher match. Error 0x80090331(SEC_E_ALGORITHM MISMATCH)
Please select a different library in your session settings. (Current: "libmariadb-3.1.9.dll")
I've googled that particular error code and can't make head nor tail of the responses - I don't understand the encryption terminology.
The second link refers to either a bug in MariaDB connector or MariaDB itself - I don't think that there will be valid solutions here for me considering I doubt I should be using the MariaDB connector to connect to a MySQL 8 database.
The third link, to this forum, suggests checking the DLL version numbers.
libmariadb.dll
= 3.1.7
libmariadb-3.1.9.dll
= 3.1.9 (this version I downloaded, installed and copied the DLL into the HeidiSQL folder.
libmysql.dll
= 5.6.6.0
libmysql-6.1.dll
= 6.1.11
I'm not sure if its relevant, but the OpenSSL library in use (libssl-1_1-x64.dll
) reports version 1.1.1d. I downloaded the most recent version (1.1.1i) and renamed the existing DLL and inserted the new versions. This has not made any difference to the error messages or my inability to connect.
I do want to restate the point that my "SSL Ciphers" option is blank. I don't know what to fill in. I did run an SQL query from an existing encrypted connections to get a list of the ciphers and the following was returned, but pasting this in has had no effect:
TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-SHA256:DHE-DSS-AES128-SHA256:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES256-SHA:CAMELLIA256-SHA:CAMELLIA128-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA
The server that I'm connecting to is an Ubuntu 20.04 LTS machine with an installation of MySQL 8.0 from the default apt
repository. The version number (mysql -V
) is reported as:
mysql Ver 8.0.22-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
Attempting from the command line, the following using the mysql client provided by a local install of MariaDB:
mysql -h <hostname> -u <username> -p --ssl --ssl-capath="<path>\ca.pem" --ssl-cert="<path>\client-cert.pem" --ssl-key="<path>\client-key.pem"
The error returned was: ERROR 2026 (HY000): SSL connection error: no cipher match (SEC_E_ALGORITHM_MISMATCH , 0x80090331)
.
(Note that this connection does not access the server via SSH - the server is currently internet facing... IP restrictions will be imposed later, once I get this working).
If I try the login from WSL (Ubuntu) I get the following error:
ERROR 2026 (HY000): SSL connection error: error:00000001:lib(0):func(0):reason(1)
The version being reported in WSL is: mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
If I specify this command from a true Ubuntu box (i.e. the one on which my PHP app resides and which can currently connect), it is unsurprising, perhaps that it also works from there.
I really don't know where to turn next or what else to try. I'd be grateful for any suggestions.