Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. "SSL connection error: unknown error number QMYSQL: Unable to connect"
Forum Updated to NodeBB v4.3 + New Features

"SSL connection error: unknown error number QMYSQL: Unable to connect"

Scheduled Pinned Locked Moved Solved General and Desktop
22 Posts 5 Posters 3.4k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S SGaist
    31 Dec 2023, 19:40

    @DeadSo0ul From the image you posted, you seem to have created a new environment variable. Is that so ?

    D Offline
    D Offline
    DeadSo0ul
    wrote on 1 Jan 2024, 10:45 last edited by
    #9

    @SGaist
    I think so.
    Did I misunderstood?

    I also tried what @piervalli suggested:
    copying and pasting the .dll files to the folder that is my executable in
    but without any success.

    P S 2 Replies Last reply 1 Jan 2024, 13:50
    0
    • D DeadSo0ul
      1 Jan 2024, 10:45

      @SGaist
      I think so.
      Did I misunderstood?

      I also tried what @piervalli suggested:
      copying and pasting the .dll files to the folder that is my executable in
      but without any success.

      P Offline
      P Offline
      piervalli
      wrote on 1 Jan 2024, 13:50 last edited by
      #10

      @DeadSo0ul

      What is version of Qt?
      For 5.15.2 it uses openssl v1 instead for Qt6 openssl3

      D 1 Reply Last reply 1 Jan 2024, 14:02
      0
      • P piervalli
        1 Jan 2024, 13:50

        @DeadSo0ul

        What is version of Qt?
        For 5.15.2 it uses openssl v1 instead for Qt6 openssl3

        D Offline
        D Offline
        DeadSo0ul
        wrote on 1 Jan 2024, 14:02 last edited by
        #11

        @piervalli
        QT Creator: 12.0.1
        Qt: 6.6.0

        I installed OpenSSL from their official site: https://www.openssl.org/source/.

        I also tried the .dll files from the tools folder in the qt folder.

        P 1 Reply Last reply 1 Jan 2024, 17:00
        0
        • D DeadSo0ul
          1 Jan 2024, 14:02

          @piervalli
          QT Creator: 12.0.1
          Qt: 6.6.0

          I installed OpenSSL from their official site: https://www.openssl.org/source/.

          I also tried the .dll files from the tools folder in the qt folder.

          P Offline
          P Offline
          piervalli
          wrote on 1 Jan 2024, 17:00 last edited by
          #12

          @DeadSo0ul

          You need understand if the library is loaded,
          (This is usually test that I use for 5.15)

          qDebug() << QSslSocket::supportsSsl() <<QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString()
          
          D 1 Reply Last reply 1 Jan 2024, 21:20
          1
          • D DeadSo0ul
            1 Jan 2024, 10:45

            @SGaist
            I think so.
            Did I misunderstood?

            I also tried what @piervalli suggested:
            copying and pasting the .dll files to the folder that is my executable in
            but without any success.

            S Offline
            S Offline
            SGaist
            Lifetime Qt Champion
            wrote on 1 Jan 2024, 20:02 last edited by
            #13

            @DeadSo0ul said in "SSL connection error: unknown error number QMYSQL: Unable to connect":

            @SGaist
            I think so.
            Did I misunderstood?

            Yes, I wrote that you should add the path to the PATH environment variable. Not create a new one.

            By the way, the Qt maintenance tool offers to download a pre-built version of OpenSSL, I would recommend using that one.

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            D 1 Reply Last reply 1 Jan 2024, 21:31
            0
            • P piervalli
              1 Jan 2024, 17:00

              @DeadSo0ul

              You need understand if the library is loaded,
              (This is usually test that I use for 5.15)

              qDebug() << QSslSocket::supportsSsl() <<QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString()
              
              D Offline
              D Offline
              DeadSo0ul
              wrote on 1 Jan 2024, 21:20 last edited by
              #14

              @piervalli said in "SSL connection error: unknown error number QMYSQL: Unable to connect":

              eed understand if the library is loaded,
              (This is usually test that I use for 5.15)

              I get a positive result for loading the library:

              true "OpenSSL 3.0.7 1 Nov 2022" "OpenSSL 3.2.0 23 Nov 2023
              
              P 1 Reply Last reply 1 Jan 2024, 22:48
              0
              • S SGaist
                1 Jan 2024, 20:02

                @DeadSo0ul said in "SSL connection error: unknown error number QMYSQL: Unable to connect":

                @SGaist
                I think so.
                Did I misunderstood?

                Yes, I wrote that you should add the path to the PATH environment variable. Not create a new one.

                By the way, the Qt maintenance tool offers to download a pre-built version of OpenSSL, I would recommend using that one.

                D Offline
                D Offline
                DeadSo0ul
                wrote on 1 Jan 2024, 21:31 last edited by
                #15

                @SGaist
                I understood this time and added

                C:\Program Files\OpenSSL-Win64
                

                as well as

                C:\Qt\Tools\OpenSSLv3\Win_x64
                

                to the Path variable.
                That gave no result.

                1 Reply Last reply
                0
                • D DeadSo0ul
                  1 Jan 2024, 21:20

                  @piervalli said in "SSL connection error: unknown error number QMYSQL: Unable to connect":

                  eed understand if the library is loaded,
                  (This is usually test that I use for 5.15)

                  I get a positive result for loading the library:

                  true "OpenSSL 3.0.7 1 Nov 2022" "OpenSSL 3.2.0 23 Nov 2023
                  
                  P Offline
                  P Offline
                  piervalli
                  wrote on 1 Jan 2024, 22:48 last edited by piervalli 1 Feb 2024, 08:29
                  #16

                  @DeadSo0ul
                  Please check on Azure what is the minimum version of TLS supported. Some versions es 1.0 or 1.1 are declared by Microsoft deprecated.

                  https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tls-support

                  I think the mistage is tls version, in the documentation of driver
                  https://doc.qt.io/qt-6/sql-driver.html#qmysql
                  we have the flag MYSQL_OPT_TLS_VERSION
                  ( I never tested is only an idea)

                  D 1 Reply Last reply 2 Jan 2024, 08:55
                  0
                  • P piervalli
                    1 Jan 2024, 22:48

                    @DeadSo0ul
                    Please check on Azure what is the minimum version of TLS supported. Some versions es 1.0 or 1.1 are declared by Microsoft deprecated.

                    https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/tls-support

                    I think the mistage is tls version, in the documentation of driver
                    https://doc.qt.io/qt-6/sql-driver.html#qmysql
                    we have the flag MYSQL_OPT_TLS_VERSION
                    ( I never tested is only an idea)

                    D Offline
                    D Offline
                    DeadSo0ul
                    wrote on 2 Jan 2024, 08:55 last edited by
                    #17

                    @piervalli
                    The current tls version is 1.2 with an option to enable 1.3

                    Screenshot 2024-01-02 at 10.53.12 AM.png

                    How can I set that MYSQL_OPT_TLS_VERSION to 1.2 or possibly 1.3

                    P 1 Reply Last reply 2 Jan 2024, 11:25
                    0
                    • D DeadSo0ul
                      2 Jan 2024, 08:55

                      @piervalli
                      The current tls version is 1.2 with an option to enable 1.3

                      Screenshot 2024-01-02 at 10.53.12 AM.png

                      How can I set that MYSQL_OPT_TLS_VERSION to 1.2 or possibly 1.3

                      P Offline
                      P Offline
                      piervalli
                      wrote on 2 Jan 2024, 11:25 last edited by piervalli 1 Feb 2024, 11:25
                      #18

                      @DeadSo0ul

                      Try with

                        db.setConnectOptions(QLatin1String("MYSQL_OPT_TLS_VERSION=TLSv1.2"))
                      

                      Before db.open()

                      D 1 Reply Last reply 4 Jan 2024, 10:52
                      0
                      • P piervalli
                        2 Jan 2024, 11:25

                        @DeadSo0ul

                        Try with

                          db.setConnectOptions(QLatin1String("MYSQL_OPT_TLS_VERSION=TLSv1.2"))
                        

                        Before db.open()

                        D Offline
                        D Offline
                        DeadSo0ul
                        wrote on 4 Jan 2024, 10:52 last edited by
                        #19

                        Hi @piervalli
                        I tried adding db.setConnectOptions(QLatin1String("MYSQL_OPT_TLS_VERSION=TLSv1.2"));
                        I get these two errors:
                        QMYSQLDriver::open: Illegal connect option value 'MYSQL_OPT_TLS_VERSION=TLSv1.2'
                        and
                        QSqlError("2026", "QMYSQL: Unable to connect", "SSL connection error: unknown error number")

                        I will provide the whole .cpp file in case I am doing something wrong

                        #include "databasemanager.hpp"
                        #include <QSslSocket>
                        DatabaseManager::DatabaseManager() {
                        
                        }
                        
                        QSqlDatabase DatabaseManager::getDatabase() {
                            return db;
                        }
                        
                        void DatabaseManager::openConnection() {
                            db = QSqlDatabase::addDatabase("QMYSQL");
                            db.setHostName("name.mysql.database.azure.com");
                            db.setPort(3306);  // Default MySQL port
                            db.setDatabaseName("db");
                            db.setUserName("admin");
                            db.setPassword("admin");
                            db.setConnectOptions(QLatin1String("MYSQL_OPT_TLS_VERSION=TLSv1.2"));
                        
                            if (db.open() && db.isOpen()) {
                                qDebug() << "Database opened successfully";
                            } else {
                                // Handle connection error
                                qDebug() << "Database failed to open";
                                qDebug() << db.lastError();
                                qDebug() << QSslSocket::supportsSsl() <<QSslSocket::sslLibraryBuildVersionString() << QSslSocket::sslLibraryVersionString();
                        
                        
                            }
                        }
                        
                        void DatabaseManager::closeConnection() {
                            db.close();
                        }
                        
                        
                        1 Reply Last reply
                        0
                        • H Offline
                          H Offline
                          hskoglund
                          wrote on 4 Jan 2024, 11:41 last edited by
                          #20

                          Hi sometimes those setConnectionOptions() need a trailling semicolon, maybe try:

                          db.setConnectOptions("MYSQL_OPT_TLS_VERSION=TLSv1.2;");
                          
                          1 Reply Last reply
                          0
                          • D Offline
                            D Offline
                            DeadSo0ul
                            wrote on 4 Jan 2024, 12:18 last edited by
                            #21

                            @hskoglund
                            I think I have done that in the provided code. Just before opening the database.

                            D 1 Reply Last reply 4 Jan 2024, 13:46
                            0
                            • D DeadSo0ul
                              4 Jan 2024, 12:18

                              @hskoglund
                              I think I have done that in the provided code. Just before opening the database.

                              D Offline
                              D Offline
                              DeadSo0ul
                              wrote on 4 Jan 2024, 13:46 last edited by
                              #22

                              Update:
                              The mistake was totally mine.
                              I was using Qt version 6.5.1. I updated to 6.6.1 and everything worked out.
                              Thanks everyone for helping!

                              1 Reply Last reply
                              0
                              • S SGaist has marked this topic as solved on 4 Jan 2024, 19:23

                              18/22

                              2 Jan 2024, 11:25

                              • Login

                              • Login or register to search.
                              18 out of 22
                              • First post
                                18/22
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved