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 4.3k 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.
  • 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

                          20/22

                          4 Jan 2024, 11:41

                          • Login

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