Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. [SOLVED] QSqlDatabase: QMYSQL driver not loaded with QMYSQL driver available in OSX Mavericks
QtWS25 Last Chance

[SOLVED] QSqlDatabase: QMYSQL driver not loaded with QMYSQL driver available in OSX Mavericks

Scheduled Pinned Locked Moved Installation and Deployment
28 Posts 7 Posters 40.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.
  • U Offline
    U Offline
    ucmar
    wrote on last edited by
    #1

    Hi all, I am having an issue with QMYSQL when open a project created in Qt4.7 in Qt5.2. In particular when connecting to the database, i get the following error:

    @QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7@

    I am using Qt5.2 on OSX 10.9.1 (Mavericks). Have any of you had any similar issue? Thank you.

    Mario

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

      Hi,

      Do you have MySql installed on Mavericks ? If so run otool -L on the qmysql.dylib plugin to see if everything is correct

      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
      • U Offline
        U Offline
        ucmar
        wrote on last edited by
        #3

        hi, I have no qmysql.dylib in ~/Qt5.2.0/5.2.0/clang_64/plugins/sqldrivers so I did:
        @otool -L libqsqlmysql.dylib@
        I don't know if this is what you meant.

        The output is:
        @libqsqlmysql.dylib:
        libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
        /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
        /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
        /Users/ucmar/Qt5.2.0/5.2.0/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.2.0, current version 5.2.0)
        /Users/ucmar/Qt5.2.0/5.2.0/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)@

        Thanks.

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

          You got the right name, sorry for the wrong direction. The output looks good. Can you post what error you have from the connection failure ?

          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
          • U Offline
            U Offline
            ucmar
            wrote on last edited by
            #5

            So, I get a window with the text: "Driver not loaded Driver not loaded". The Application Output returns the following error:
            @QSqlDatabase: QMYSQL driver not loaded
            QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
            QSqlQuery::exec: database not open@

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

              and what does QSqlDatabase::lastError() return ?

              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
              • U Offline
                U Offline
                ucmar
                wrote on last edited by
                #7

                That function seems to return this text: “Driver not loaded Driver not loaded”.
                I am using the following error check:
                @if (!db.open())
                {
                QMessageBox::critical(0, QObject::tr("Database Error"),
                db.lastError().text());
                }@

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

                  Just to be sure do you have this file:

                  /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib ?

                  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
                  • U Offline
                    U Offline
                    ucmar
                    wrote on last edited by
                    #9

                    Thanks for your hint. I didn't have it, and I also missed the folder "../mysql". I have just tried to copy it from another folder on my mac (a subfolder of a drupal local website), but my application still shoots the same error... :(

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

                      Since it's in /opt/ I would suspect it's a MacPort install of MySql.

                      If you have the same lib you can use install_name_tool to change the path in your libqsqlmysql.dylib

                      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
                      • U Offline
                        U Offline
                        ucmar
                        wrote on last edited by
                        #11

                        Thank you very much SGaist!!! I realized I had mistakenly created only the "../mysql" folder under "/opt/local/lib"! I have then fixed my problem by creating the complete folder path "../mysql55/mysql" as you suggested and copying the file libmysqlclient.18.dylib there. My Database connection is correctly working now! :D

                        Wish you a great 2014! Eheh

                        Mario

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

                          You're welcome !

                          All the same to you !

                          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
                          • F Offline
                            F Offline
                            foxgod
                            wrote on last edited by
                            #13

                            my os is windows 7 ,andI am having an issue with QMYSQL when open a project in Qt5.2. In particular when connecting to the database, i get the following error:

                            QSqlDatabase: QMYSQL driver not loaded
                            QSqlDatabase :available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

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

                              Hi foxgod,

                              Please have a look at the already numerous threads related to this problem with windows. This one is dedicated to OS X.

                              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
                              • C Offline
                                C Offline
                                cdallago
                                wrote on last edited by
                                #15

                                Hi guys,
                                I'm sorry to open this post again but I found this to be the thread that best approximates my situation.

                                Basically I followed everything until here:
                                [quote author="SGaist" date="1388421018"]Just to be sure do you have this file:

                                /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib ?[/quote]

                                I haven't used macports to install mysql, I used the "MMV MySQL Script":http://code.macminivault.com/
                                Do I need to create that folder in my directory structure and just copy the libmysqlclient.18.dylib there? Also, when did it become libmysqlclient.18.dylib :D Last time I checked you were still talking about libmysqlclient.dylib :S

                                Sorry guys, I've been looking for solutions for weeks now!

                                PS.: My "otool -L libqsqlmysql.dylib " looks like this:

                                libqsqlmysql.dylib:
                                libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
                                libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
                                /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
                                /Users/sacdallago/Qt5.2.1/5.2.1/clang_64/lib/QtSql.framework/Versions/5/QtSql (compatibility version 5.2.0, current version 5.2.1)
                                /Users/sacdallago/Qt5.2.1/5.2.1/clang_64/lib/QtCore.framework/Versions/5/QtCore (compatibility version 5.2.0, current version 5.2.1)
                                /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
                                /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)

                                1 Reply Last reply
                                1
                                • C Offline
                                  C Offline
                                  cdallago
                                  wrote on last edited by
                                  #16

                                  P.P.S.: Looking around I found the 'libmysqlclient.18.dylib' file (in the folder '/usr/local/mysql-5.6.16-osx10.7-x86_64/lib/'), and I copied it to '/opt/local/lib/mysql55/mysql/'.
                                  This didn't solve the problem, though :(

                                  Any other suggestions?

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

                                    Hi and welcome to devnet,

                                    The location of the library itself is not the key here. Use install_name_tool to update the path to point to your libmysqlclient.18.dylib

                                    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
                                    • C Offline
                                      C Offline
                                      cdallago
                                      wrote on last edited by
                                      #18

                                      [quote author="SGaist" date="1396469393"]Hi and welcome to devnet,

                                      The location of the library itself is not the key here. Use install_name_tool to update the path to point to your libmysqlclient.18.dylib[/quote]

                                      Thanks for the suggestion SGaist! I still could't make it work after using install_name_tool, so I just switched to postgres, which worked out-of-the-box.

                                      I will try to figure out how to make MySQL work when I won't have deadlines keeping me awake at night :S

                                      Best regards!

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

                                        Check both Qt's MySQL plugin and libmysqlclient with otool -L to ensure that everything can be found correctly

                                        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
                                        • OrbotronO Offline
                                          OrbotronO Offline
                                          Orbotron
                                          wrote on last edited by Orbotron
                                          #20

                                          Re: [SOLVED] QSqlDatabase: QMYSQL driver not loaded with QMYSQL driver available in OSX Mavericks

                                          Just wanted to reply 2 years later to let people know that this solution still works on OSX if you download the offline installer qt-opensource for Mac OSX.

                                          Thanks!

                                          I ran otool on my libsqlmysql.dylib and it was pointing at

                                          [dank:...clang_64/plugins/sqldrivers]$ otool -L libqsqlmysql.dylib
                                          libqsqlmysql.dylib:
                                          	libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
                                          	/opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib (compatibility version 18.0.0, current version 18.0.0)
                                          	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
                                          	@rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.5.0, current version 5.5.1)
                                          	...
                                          

                                          I install MySQL with Homebrew

                                          [dank:...clang_64/plugins/sqldrivers]$ l /usr/local/lib/ | grep 18
                                          drwxrwxr-x   32 root  admin   1.1K Feb 10 18:49 ..
                                          drwxr-xr-x    3 dank  admin   102B Nov 18 12:35 python2.7
                                          lrwxr-xr-x    1 dank  admin    52B Jan 29 13:11 utf8_and_gb18030.so -> ../Cellar/postgresql94/9.4.5/lib/utf8_and_gb18030.so
                                          [dank:...clang_64/plugins/sqldrivers]$ l /usr/local/lib/ | grep mysql
                                          lrwxr-xr-x    1 dank  admin    20B Feb  8 08:21 lib -> /usr/local/mysql/lib
                                          lrwxr-xr-x    1 dank  admin    50B Feb  8 08:15 libmysqlclient.20.dylib -> ../Cellar/mysql/5.7.11/lib/libmysqlclient.20.dylib
                                          lrwxr-xr-x    1 dank  admin    43B Feb  8 08:15 libmysqlclient.a -> ../Cellar/mysql/5.7.11/lib/libmysqlclient.a
                                          lrwxr-xr-x    1 dank  admin    47B Feb  8 08:15 libmysqlclient.dylib -> ../Cellar/mysql/5.7.11/lib/libmysqlclient.dylib
                                          lrwxr-xr-x    1 dank  admin    38B Feb  8 08:22 libmysqld-debug.a -> /usr/local/mysql/lib/libmysqld-debug.a
                                          lrwxr-xr-x    1 dank  admin    38B Feb  8 08:15 libmysqld.a -> ../Cellar/mysql/5.7.11/lib/libmysqld.a
                                          lrwxr-xr-x    1 dank  admin    45B Feb  8 08:15 libmysqlservices.a -> ../Cellar/mysql/5.7.11/lib/libmysqlservices.a
                                          ...
                                          

                                          so I ran

                                          install_name_tool -change /opt/local/lib/mysql55/mysql/libmysqlclient.18.dylib /usr/local/Cellar/mysql/5.7.11/lib/libmysqlclient.20.dylib libqsqlmysql.dylib
                                          

                                          to double check

                                          [dank:...clang_64/plugins/sqldrivers]$ otool -L libqsqlmysql.dylib
                                          libqsqlmysql.dylib:
                                          	libqsqlmysql.dylib (compatibility version 0.0.0, current version 0.0.0)
                                          	/usr/local/Cellar/mysql/5.7.11/lib/libmysqlclient.20.dylib (compatibility version 18.0.0, current version 18.0.0)
                                          	/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
                                          	@rpath/QtSql.framework/Versions/5/QtSql (compatibility version 5.5.0, current version 5.5.1)
                                          	@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.5.0, current version 5.5.1)
                                          	/System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0)
                                          	/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
                                          	/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0)
                                          	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)
                                          

                                          I feel the fact that it still says version 18.0.0 is weird but it works now for me

                                          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