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. Stuck creating MySQL drivers on Mac OS
QtWS25 Last Chance

Stuck creating MySQL drivers on Mac OS

Scheduled Pinned Locked Moved Solved General and Desktop
macosmacosxmac os 10.15.7mysql driverqt6.4.1
11 Posts 2 Posters 2.7k Views
  • 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 Offline
    S Offline
    superg
    wrote on 6 Dec 2022, 05:15 last edited by superg 12 Jun 2022, 05:16
    #1

    Hello, I've been trying to create the MySQL drivers for QT 6.4 on Mac OS Catalina, yet when i follow the instructions specified here, I get stuck executing the command

    qt-cmake -G Ninja <qt_installation_path>/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.<so|dylib>"
    

    This is a step by step of what I have done.

    • Open Terminal
    • Execute mkdir build-sqldrivers (Thus, creating the folder build-sqldrivers in /Users/santiagocarlos/)
    • Execute cd build-sqldrivers
    • Execute the command below:
    /Users/Santiagocarlos/Qt/6.4.1/macos/bin/qt-cmake -G Ninja /Users/Santiagocarlos/Qt/6.4.1/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/Santiagocarlos/Qt/6.4.1/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib”
    

    And this is where I got stuck. The only thing I can see in the terminal is this:
    Screen Shot 2022-12-05 at 18.41.37 PM.png
    Here I don't know what to do. It doesn't matter what I try or type, when I press enter I get a new line with the dquote> prefix. This is another example:
    Screen Shot 2022-12-06 at 02.09.59 AM.png
    Here I tried typing the commands cmake --build . and cmake --install . like it says in the Qt documentation. After this, if I finish the execution with Ctrl+C and I press de "up" arrow to see the last command I typed, I get this:
    Screen Shot 2022-12-06 at 02.10.10 AM.png
    Which is weird, like it's stored or something.
    I been dealing with this for the past few days and still don't get it, nor find any answer online.

    Does anybody know what should I do here? I'm really confused. Am I creating the folder build-sqldrivers in the correct directory? Should I type something special here? I appreciate any kind of help or guidance.

    Thank you all in advance.

    J 1 Reply Last reply 6 Dec 2022, 06:21
    0
    • S superg
      6 Dec 2022, 05:15

      Hello, I've been trying to create the MySQL drivers for QT 6.4 on Mac OS Catalina, yet when i follow the instructions specified here, I get stuck executing the command

      qt-cmake -G Ninja <qt_installation_path>/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=<qt_installation_path>/<platform> -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.<so|dylib>"
      

      This is a step by step of what I have done.

      • Open Terminal
      • Execute mkdir build-sqldrivers (Thus, creating the folder build-sqldrivers in /Users/santiagocarlos/)
      • Execute cd build-sqldrivers
      • Execute the command below:
      /Users/Santiagocarlos/Qt/6.4.1/macos/bin/qt-cmake -G Ninja /Users/Santiagocarlos/Qt/6.4.1/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/Santiagocarlos/Qt/6.4.1/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib”
      

      And this is where I got stuck. The only thing I can see in the terminal is this:
      Screen Shot 2022-12-05 at 18.41.37 PM.png
      Here I don't know what to do. It doesn't matter what I try or type, when I press enter I get a new line with the dquote> prefix. This is another example:
      Screen Shot 2022-12-06 at 02.09.59 AM.png
      Here I tried typing the commands cmake --build . and cmake --install . like it says in the Qt documentation. After this, if I finish the execution with Ctrl+C and I press de "up" arrow to see the last command I typed, I get this:
      Screen Shot 2022-12-06 at 02.10.10 AM.png
      Which is weird, like it's stored or something.
      I been dealing with this for the past few days and still don't get it, nor find any answer online.

      Does anybody know what should I do here? I'm really confused. Am I creating the folder build-sqldrivers in the correct directory? Should I type something special here? I appreciate any kind of help or guidance.

      Thank you all in advance.

      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 6 Dec 2022, 06:21 last edited by
      #2

      @superg Take a close look at the last parameter: you terminate the string with wrong " character, so the string is not terminated and you get dquote.

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

      S 1 Reply Last reply 6 Dec 2022, 06:48
      1
      • J jsulm
        6 Dec 2022, 06:21

        @superg Take a close look at the last parameter: you terminate the string with wrong " character, so the string is not terminated and you get dquote.

        S Offline
        S Offline
        superg
        wrote on 6 Dec 2022, 06:48 last edited by
        #3

        @jsulm Thanks! That did it. Although now I have a new problem, I have successfully installed the MySQL driver, but when I try to load it I still get the error QSqlDatabase: QMYSQL driver not loaded.
        I set the QT_DEBUG_PLUGINS to 1 and I get the following:

        2022-12-06 03:41:51.207332-0300 ProyectoPola[33637:303361] [qt.core.library] "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib" cannot load: Cannot load library /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: @rpath/libmysqlclient.21.dylib
          Referenced from: /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib
          Reason: image not found)
        2022-12-06 03:41:51.207385-0300 ProyectoPola[33637:303361] [qt.core.plugin.loader] QLibraryPrivate::loadPlugin failed on "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: @rpath/libmysqlclient.21.dylib\n  Referenced from: /Users/santiagocarlos/Qt/6.4.1/macos/p
        lugins/sqldrivers/libqsqlmysql.dylib\n  Reason: image not found)"
        2022-12-06 03:41:51.207436-0300 ProyectoPola[33637:303361] QSqlDatabase: QMYSQL driver not loaded
        2022-12-06 03:41:51.207494-0300 ProyectoPola[33637:303361] QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
        2022-12-06 03:41:51.207549-0300 ProyectoPola[33637:303361] db connection false
        

        So, it seems like I can't load the driver, even though it's available.
        Any idea how to solve this?
        Thank you.

        J 1 Reply Last reply 6 Dec 2022, 07:01
        0
        • S superg
          6 Dec 2022, 06:48

          @jsulm Thanks! That did it. Although now I have a new problem, I have successfully installed the MySQL driver, but when I try to load it I still get the error QSqlDatabase: QMYSQL driver not loaded.
          I set the QT_DEBUG_PLUGINS to 1 and I get the following:

          2022-12-06 03:41:51.207332-0300 ProyectoPola[33637:303361] [qt.core.library] "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib" cannot load: Cannot load library /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: @rpath/libmysqlclient.21.dylib
            Referenced from: /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib
            Reason: image not found)
          2022-12-06 03:41:51.207385-0300 ProyectoPola[33637:303361] [qt.core.plugin.loader] QLibraryPrivate::loadPlugin failed on "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: @rpath/libmysqlclient.21.dylib\n  Referenced from: /Users/santiagocarlos/Qt/6.4.1/macos/p
          lugins/sqldrivers/libqsqlmysql.dylib\n  Reason: image not found)"
          2022-12-06 03:41:51.207436-0300 ProyectoPola[33637:303361] QSqlDatabase: QMYSQL driver not loaded
          2022-12-06 03:41:51.207494-0300 ProyectoPola[33637:303361] QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
          2022-12-06 03:41:51.207549-0300 ProyectoPola[33637:303361] db connection false
          

          So, it seems like I can't load the driver, even though it's available.
          Any idea how to solve this?
          Thank you.

          J Offline
          J Offline
          jsulm
          Lifetime Qt Champion
          wrote on 6 Dec 2022, 07:01 last edited by
          #4

          @superg said in Stuck creating MySQL drivers on Mac OS:

          Library not loaded: @rpath/libmysqlclient.21.dylib

          The MySQL client library is not found. It is located in /usr/local/mysql which is not a path searched by default for libraries. There are different ways to solve this:

          • Set LD_LIBRARY_PATH environment variable, so it points to /usr/local/mysql
          • Copy the MySQL client library to your build folder
          • Copy the MySQL client library to a folder searched by the system for libraries (like /usr/lib)

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

          S 2 Replies Last reply 6 Dec 2022, 18:33
          0
          • J jsulm
            6 Dec 2022, 07:01

            @superg said in Stuck creating MySQL drivers on Mac OS:

            Library not loaded: @rpath/libmysqlclient.21.dylib

            The MySQL client library is not found. It is located in /usr/local/mysql which is not a path searched by default for libraries. There are different ways to solve this:

            • Set LD_LIBRARY_PATH environment variable, so it points to /usr/local/mysql
            • Copy the MySQL client library to your build folder
            • Copy the MySQL client library to a folder searched by the system for libraries (like /usr/lib)
            S Offline
            S Offline
            superg
            wrote on 6 Dec 2022, 18:33 last edited by superg 12 Jun 2022, 18:42
            #5

            @jsulm Ok, I tried with the two first steps with no luck. I will try the third one later, I have to deactivate de SIP system of my mac.
            Here is a screenshot were I show how I set LD_LIBRARY_PATH:
            Screen Shot 2022-12-06 at 15.25.28 PM.png
            This is in "Run" under "Build & Run" in "projects".
            I also copied the file libmysqlclient.21.dylib (found in /usr/local/mysql/lib) to the build folder of my project.
            Have I done something wrong?
            Thanks.

            J 1 Reply Last reply 7 Dec 2022, 07:08
            0
            • S superg
              6 Dec 2022, 18:33

              @jsulm Ok, I tried with the two first steps with no luck. I will try the third one later, I have to deactivate de SIP system of my mac.
              Here is a screenshot were I show how I set LD_LIBRARY_PATH:
              Screen Shot 2022-12-06 at 15.25.28 PM.png
              This is in "Run" under "Build & Run" in "projects".
              I also copied the file libmysqlclient.21.dylib (found in /usr/local/mysql/lib) to the build folder of my project.
              Have I done something wrong?
              Thanks.

              J Offline
              J Offline
              jsulm
              Lifetime Qt Champion
              wrote on 7 Dec 2022, 07:08 last edited by
              #6

              @superg Please check again with QT_DEBUG_PLUGINS set to see why it fails now.

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

              S 1 Reply Last reply 8 Dec 2022, 01:17
              0
              • J jsulm
                7 Dec 2022, 07:08

                @superg Please check again with QT_DEBUG_PLUGINS set to see why it fails now.

                S Offline
                S Offline
                superg
                wrote on 8 Dec 2022, 01:17 last edited by
                #7

                @jsulm Ok, so this is what I get:

                2022-12-07 22:13:59.642409-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] Got keys from plugin meta data QList("QSQLITE")
                2022-12-07 22:13:59.642606-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader]
                 looking at "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib"
                2022-12-07 22:13:59.643509-0300 ProyectoPola[49706:477072] [qt.core.plugin.loader] Found metadata in lib /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, metadata=
                {
                    "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                    "MetaData": {
                        "Keys": [
                            "QMYSQL",
                            "QMARIADB"
                        ]
                    },
                    "archlevel": 2,
                    "className": "QMYSQLDriverPlugin",
                    "debug": false,
                    "version": 394240
                }
                2022-12-07 22:13:59.643583-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] Got keys from plugin meta data QList("QMYSQL", "QMARIADB")
                2022-12-07 22:13:59.643700-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] looking at "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlodbc.dylib"
                2022-12-07 22:13:59.644751-0300 ProyectoPola[49706:477072] [qt.core.plugin.loader] Found metadata in lib /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlodbc.dylib, metadata=
                {
                    "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                    "MetaData": {
                        "Keys": [
                            "QODBC"
                        ]
                    },
                    "archlevel": 2,
                    "className": "QODBCDriverPlugin",
                    "debug": false,
                    "version": 394240
                }
                2022-12-07 22:13:59.644800-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] Got keys from plugin meta data QList("QODBC")
                2022-12-07 22:13:59.644947-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] looking at "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlpsql.dylib"
                2022-12-07 22:13:59.645977-0300 ProyectoPola[49706:477072] [qt.core.plugin.loader] Found metadata in lib /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlpsql.dylib, metadata=
                {
                    "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
                    "MetaData": 
                {
                        "Keys": [
                            "QPSQL"
                        ]
                    },
                    "archlevel": 2,
                    "className": "QPSQLDriverPlugin",
                    "debug": false,
                    "version": 394240
                }
                2022-12-07 22:13:59.646016-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] Got keys from plugin meta data QList("QPSQL")
                2022-12-07 22:13:59.646039-0300 ProyectoPola[49706:477072] [qt.core.plugin.factoryloader] checking directory path "/Users/santiagocarlos/Trabajo/Polarímetro/build-ProyectoPola-Qt_6_4_1_for_macOS-Debug/ProyectoPola.app/Contents/MacOS/sqldrivers" ...
                2022-12-07 22:13:59.653530-0300 ProyectoPola[49706:477072] [qt.core.library] "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib" cannot load: Cannot load library /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: @rpath/libmysqlclient.21.dylib
                  Referenced from: /Users/santiagocarlos/Qt/6.4.1/macos/plugin
                s/sqldrivers/libqsqlmysql.dylib
                  Reason: image not found)
                2022-12-07 22:13:59.653574-0300 ProyectoPola[49706:477072] [qt.core.plugin.loader] QLibraryPrivate::loadPlugin failed on "/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib" : "Cannot load library /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib: (dlopen(/Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib, 133): Library not loaded: @rpath/libmysqlclient.21.dylib\n  Referenced from: /Users/santiagocarlos/Qt/6.4.1/macos/plugins/sqldrivers/libqsqlmysql.dylib\n  Reason: image not found)"
                2022-12-07 22:13:59.653614-0300 ProyectoPola[49706:477072] QSqlDatabase: QMYSQL driver not loaded
                2022-12-07 22:13:59.653662-0300 ProyectoPola[49706:477072] QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QODBC QPSQL
                2022-12-07 22:13:59.653704-0300 ProyectoPola[49706:477072] db connection false
                

                I think the output is basically the same as before I followed the steps you recommended, that why I asked if I had done something wrong.
                Thanks again.

                1 Reply Last reply
                0
                • J jsulm
                  6 Dec 2022, 07:01

                  @superg said in Stuck creating MySQL drivers on Mac OS:

                  Library not loaded: @rpath/libmysqlclient.21.dylib

                  The MySQL client library is not found. It is located in /usr/local/mysql which is not a path searched by default for libraries. There are different ways to solve this:

                  • Set LD_LIBRARY_PATH environment variable, so it points to /usr/local/mysql
                  • Copy the MySQL client library to your build folder
                  • Copy the MySQL client library to a folder searched by the system for libraries (like /usr/lib)
                  S Offline
                  S Offline
                  superg
                  wrote on 8 Dec 2022, 01:34 last edited by
                  #8

                  @jsulm said in Stuck creating MySQL drivers on Mac OS:

                  • Copy the MySQL client library to your build folder
                  • Copy the MySQL client library to a folder searched by the system for libraries (like /usr/lib)

                  I have a question regarding this. What exactly do you mean by "Copy the MySQL client library to.."?
                  Are you referring to the file libmysqlclient.21.dylib found in /usr/local/mysql/lib? because that's what I copied. Should I copy the hole folder or something like that?

                  Thanks in advance.

                  J 1 Reply Last reply 8 Dec 2022, 06:24
                  0
                  • S superg
                    8 Dec 2022, 01:34

                    @jsulm said in Stuck creating MySQL drivers on Mac OS:

                    • Copy the MySQL client library to your build folder
                    • Copy the MySQL client library to a folder searched by the system for libraries (like /usr/lib)

                    I have a question regarding this. What exactly do you mean by "Copy the MySQL client library to.."?
                    Are you referring to the file libmysqlclient.21.dylib found in /usr/local/mysql/lib? because that's what I copied. Should I copy the hole folder or something like that?

                    Thanks in advance.

                    J Offline
                    J Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on 8 Dec 2022, 06:24 last edited by
                    #9

                    @superg said in Stuck creating MySQL drivers on Mac OS:

                    Are you referring to the file libmysqlclient.21.dylib

                    Yes.
                    "Should I copy the hole folder or something like that?" - maybe, depends whether libmysqlclient.21.dylib depends on other libraries in that folder.

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

                    S 1 Reply Last reply 8 Dec 2022, 07:44
                    0
                    • S Offline
                      S Offline
                      superg
                      wrote on 8 Dec 2022, 07:23 last edited by
                      #10
                      This post is deleted!
                      1 Reply Last reply
                      0
                      • J jsulm
                        8 Dec 2022, 06:24

                        @superg said in Stuck creating MySQL drivers on Mac OS:

                        Are you referring to the file libmysqlclient.21.dylib

                        Yes.
                        "Should I copy the hole folder or something like that?" - maybe, depends whether libmysqlclient.21.dylib depends on other libraries in that folder.

                        S Offline
                        S Offline
                        superg
                        wrote on 8 Dec 2022, 07:44 last edited by
                        #11

                        I just solved the issue following this video. Using the command provided in solution 1 did the trick.
                        The command I used is the following:

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

                        The explanation of how this works is in that video, for anyone stepping with this problem in the future.
                        Thanks @jsulm for your help and time.

                        1 Reply Last reply
                        0

                        1/11

                        6 Dec 2022, 05:15

                        • Login

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