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. Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded
Forum Updated to NodeBB v4.3 + New Features

Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded

Scheduled Pinned Locked Moved Solved General and Desktop
40 Posts 5 Posters 9.1k 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.
  • SPlattenS Offline
    SPlattenS Offline
    SPlatten
    wrote on last edited by
    #28

    @SGaist said in Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded:

    QT_DEBUG_PLUGINS

    With QT_DEBUG_PLUGINS added to the environment the output when single stepping over:

        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    

    Is:

    2018-10-11 08:28:13.253913+0100 SimonQtWidgets[1031:41669] Got keys from plugin meta data ("QPSQL7", "QPSQL")
    2018-10-11 08:28:13.253927+0100 SimonQtWidgets[1031:41669] QFactoryLoader::QFactoryLoader() checking directory path "/Users/simonplatten/build-SimonQtWidgets-Desktop_Qt_5_11_2_clang_64bit-Debug/SimonQtWidgets.app/Contents/MacOS/sqldrivers" ...
    2018-10-11 08:28:13.255823+0100 SimonQtWidgets[1031:41669] Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
      Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
      Reason: image not found)
    2018-10-11 08:28:13.255844+0100 SimonQtWidgets[1031:41669] QLibraryPrivate::loadPlugin failed on "/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib\n  Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib\n  Reason: image not found)"
    2018-10-11 08:28:13.255
    859+0100 SimonQtWidgets[1031:41669] QSqlDatabase: QMYSQL driver not loaded
    2018-10-11 08:28:13.255885+0100 SimonQtWidgets[1031:41669] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
    

    Kind Regards,
    Sy

    jsulmJ 1 Reply Last reply
    0
    • SPlattenS SPlatten

      @SGaist said in Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded:

      QT_DEBUG_PLUGINS

      With QT_DEBUG_PLUGINS added to the environment the output when single stepping over:

          QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
      

      Is:

      2018-10-11 08:28:13.253913+0100 SimonQtWidgets[1031:41669] Got keys from plugin meta data ("QPSQL7", "QPSQL")
      2018-10-11 08:28:13.253927+0100 SimonQtWidgets[1031:41669] QFactoryLoader::QFactoryLoader() checking directory path "/Users/simonplatten/build-SimonQtWidgets-Desktop_Qt_5_11_2_clang_64bit-Debug/SimonQtWidgets.app/Contents/MacOS/sqldrivers" ...
      2018-10-11 08:28:13.255823+0100 SimonQtWidgets[1031:41669] Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
        Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
        Reason: image not found)
      2018-10-11 08:28:13.255844+0100 SimonQtWidgets[1031:41669] QLibraryPrivate::loadPlugin failed on "/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib\n  Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib\n  Reason: image not found)"
      2018-10-11 08:28:13.255
      859+0100 SimonQtWidgets[1031:41669] QSqlDatabase: QMYSQL driver not loaded
      2018-10-11 08:28:13.255885+0100 SimonQtWidgets[1031:41669] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #29

      @SPlatten said in Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded:

      Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib

      Do you have this lib in that location?

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      0
      • SPlattenS Offline
        SPlattenS Offline
        SPlatten
        wrote on last edited by
        #30

        @jsulm , No, I've no idea what this library is or where is comes from. The path /usr/local/mysql doesn't exist.

        Kind Regards,
        Sy

        jsulmJ 1 Reply Last reply
        0
        • SPlattenS SPlatten

          @jsulm , No, I've no idea what this library is or where is comes from. The path /usr/local/mysql doesn't exist.

          jsulmJ Offline
          jsulmJ Offline
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #31

          @SPlatten This is the MySQL client library which is used by Qt to access MySQL databases. You need it if you want to use MySQL.

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • SPlattenS Offline
            SPlattenS Offline
            SPlatten
            wrote on last edited by
            #32

            @jsulm said in Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded:

            libmysqlclient.20.dylib

            I've found what I think is the correct library on my system:

                /usr/local/Cellar/mariadb/10.2.6/lib/libmariadb.dylib
            

            I then tried:

                sudo ln -s /usr/local/Cellar/mariadb/10.2.6/lib/libmariadb.dylib /usr/local/lib/libmysqlclient.20.dylib
            

            Re-ran in debug and the problem has changed, looks like I'm using the wrong library now:

            2018-10-11 09:15:08.331712+0100 SimonQtWidgets[1644:135071] Got keys from plugin meta data ("QPSQL7", "QPSQL")
            2018-10-11 09:15:08.331726+0100 SimonQtWidgets[1644:135071] QFactoryLoader::QFactoryLoader() checking directory path "/Users/simonplatten/build-SimonQtWidgets-Desktop_Qt_5_11_2_clang_64bit-Debug/SimonQtWidgets.app/Contents/MacOS/sqldrivers" ...
            2018-10-11 09:15:08.347152+0100 SimonQtWidgets[1644:135071] Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
              Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
              Reason: Incompatible library version: libqsqlmysql.dylib requires version 20.0.0 or later, but libmysqlclient.20.dylib provides version 3.0.0)
            2018-10-11 09:15:08.347182+0100 SimonQtWidgets[1644:135071] QLibraryPrivate::loadPlugin failed on "/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib\n  Referenced from: /Users/sim
            onplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib\n  Reason: Incompatible library version: libqsqlmysql.dylib requires version 20.0.0 or later, but libmysqlclient.20.dylib provides version 3.0.0)"
            2018-10-11 09:15:08.347201+0100 SimonQtWidgets[1644:135071] QSqlDatabase: QMYSQL driver not loaded
            2018-10-11 09:15:08.347228+0100 SimonQtWidgets[1644:135071] QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
            

            Kind Regards,
            Sy

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #33

              Don't use ln that won't help, use install_name_tool and update the path in libqsqlmysql.dylib to match what you have on your system.

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

              1 Reply Last reply
              0
              • SPlattenS Offline
                SPlattenS Offline
                SPlatten
                wrote on last edited by SPlatten
                #34

                @SGaist, thank you, do you have an example? How do I achieve this?

                Kind Regards,
                Sy

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #35

                  Did you read the tool's help ?

                  install_name_tool -change /usr/local/mysql/lib/libmysqlclient.20.dylib /path/to/mariadb/libmariadbclient.X.dylib /Users/hasan/Qt5.9.1/5.9.1/clang_64/plugins/sqldrivers/libqsqlmysql.dylib

                  Note that MariaDB should be a drop-in replacement however I haven't tried to "re-link" to a library that has different name (just a different compatible version number) so you may have other surprises.

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

                  1 Reply Last reply
                  1
                  • SPlattenS Offline
                    SPlattenS Offline
                    SPlatten
                    wrote on last edited by SPlatten
                    #36

                    @SPlatten said in Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded:

                    2018-10-11 09:15:08.331712+0100 SimonQtWidgets[1644:135071] Got keys from plugin meta data ("QPSQL7", "QPSQL")
                    2018-10-11 09:15:08.331726+0100 SimonQtWidgets[1644:135071] QFactoryLoader::QFact

                    @SGaist

                    I'm struggling, the only libmariadbclient I can find on my entire system is:

                        /usr/local/Cellar/mariadb/10.2.6/lib/libmariadbclient.a
                    

                    Kind Regards,
                    Sy

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by SGaist
                      #37

                      Then that's something you have to check with the brew folks.

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

                      1 Reply Last reply
                      0
                      • SPlattenS Offline
                        SPlattenS Offline
                        SPlatten
                        wrote on last edited by SPlatten
                        #38

                        @SGaist , I was looking for an .so library, I've now learnt that a .dylib is the mac os equivalent.

                        The database I'm using is MariaDB, I've just updated this using:

                         brew upgrade mariadb
                        

                        Then:

                        brew services restart mariadb
                        

                        This has added:

                        /usr/local/Cellar/mariadb/10.3.10/lib
                        

                        Containing:

                        -rwxr-xr-x  1 simonplatten  staff  1425020 13 Sep 05:40 libqsqlite.dylib
                        drwxr-xr-x  3 simonplatten  staff       96  4 Oct 13:26 libqsqlite.dylib.dSYM
                        -rwxr-xr-x  1 simonplatten  staff  1435972 13 Sep 05:38 libqsqlite_debug.dylib
                        drwxr-xr-x  3 simonplatten  staff       96  4 Oct 13:26 libqsqlite_debug.dylib.dSYM
                        -rwxr-xr-x  1 simonplatten  staff    79864 13 Sep 05:40 libqsqlmysql.dylib
                        drwxr-xr-x  3 simonplatten  staff       96  4 Oct 13:26 libqsqlmysql.dylib.dSYM
                        -rwxr-xr-x  1 simonplatten  staff   137448 13 Sep 05:38 libqsqlmysql_debug.dylib
                        drwxr-xr-x  3 simonplatten  staff       96  4 Oct 13:26 libqsqlmysql_debug.dylib.dSYM
                        -rwxr-xr-x  1 simonplatten  staff    88980 13 Sep 05:40 libqsqlpsql.dylib
                        drwxr-xr-x  3 simonplatten  staff       96  4 Oct 13:26 libqsqlpsql.dylib.dSYM
                        -rwxr-xr-x  1 simonplatten  staff   138612 13 Sep 05:38 libqsqlpsql_debug.dylib
                        drwxr-xr-x  3 simonplatten  staff       96  4 Oct 13:26 libqsqlpsql_debug.dylib.dSYM
                        

                        Looking at the debug output from the Application Output:

                        2018-10-12 02:33:13.197110+0100 SimonQtWidgets[6965:134266] Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib
                          Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib
                          Reason: image not found)
                        

                        Why is it trying to load libmysqlclient.20.dylib ?

                        The next line in the Application output:

                        2018-10-12 02:33:13.197133+0100 SimonQtWidgets[6965:134266] QLibraryPrivate::loadPlugin failed on "/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/simonplatten/Qt/
                        

                        Then:

                        (dlopen(/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib\n  Referenced from: /Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib\n  Reason: image not found)"
                        2018-10-12 02:33:13.1
                        97150+0100 SimonQtWidgets[6965:134266] QSqlDatabase: QMYSQL driver not loaded
                        

                        Kind Regards,
                        Sy

                        1 Reply Last reply
                        0
                        • SPlattenS Offline
                          SPlattenS Offline
                          SPlatten
                          wrote on last edited by SPlatten
                          #39

                          @SPlatten said in Qt5.11.2, QSqlDatabase, QMYSQL, Driver not loaded:

                          libmysqlclient.20.dylib

                          @SGaist , I managed to progress the issue, this is what I did:

                          Manually create the required folder structure, from /usr/local:

                          sudo mkdir mysql
                          cd mysql
                          sudo mkdir lib
                          cd lib
                          

                          Then create a symbolic link to the required library:

                          sudo ln -s /usr/local/lib/libmysqlclient.dylib /usr/local/mysql/lib/libmysqlclient.20.dylib
                          

                          Now debugging the same project, the call to open still fails with:

                          2018-10-12 08:44:19.696706+0100 SimonQtWidgets[1253:117317] loaded library "/Users/simonplatten/Qt/5.11.2/clang_64/plugins/sqldrivers/libqsqlmysql.dylib"
                          2018-10-12 08:44:39.663805+0100 SimonQtWidgets[1253:117317] QSqlError("1130", "QMYSQL: Unable to connect", "Host '192.168.1.158' is not allowed to connect to this MariaDB server")
                          2018-10-12 08:44:40.409469+0100 SimonQtWidgets[1253:117317] Failed to connect.
                          

                          Now resolved, the issue here was that the call to setHostName was using the host name of the system, I changed this to localhost and now everything works.

                          Kind Regards,
                          Sy

                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #40

                            That shouldn't be necessary but at least it got you going further.

                            As for your second error, this is your database configuration you have to inspect.

                            Is it a remote machine ? If not then replace the host name with localhost and try again.

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

                            1 Reply Last reply
                            0

                            • Login

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