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

                      22/22

                      4 Jan 2024, 13:46

                      • Login

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