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. QSqlDatabase: QMYSQL driver not loaded
Forum Updated to NodeBB v4.3 + New Features

QSqlDatabase: QMYSQL driver not loaded

Scheduled Pinned Locked Moved Solved General and Desktop
qmysqlqsqldatabaseubuntu 14.04driver not load
28 Posts 6 Posters 28.4k 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.
  • jsulmJ jsulm

    Can you check whether you have libmysqlclient_r.so.16 on your system?
    On my Ubuntu 14.04 it is libmysqlclient_r.so.18

    T Offline
    T Offline
    Tas-sos
    wrote on last edited by
    #11

    @jsulm
    Yes I have the same too :

    :/usr/lib/i386-linux-gnu$ ls | grep libmysql
    libmysqlclient.a
    libmysqlclient_r.a
    libmysqlclient_r.so
    libmysqlclient_r.so.18
    libmysqlclient_r.so.18.0.0
    libmysqlclient.so
    libmysqlclient.so.18
    libmysqlclient.so.18.0.0
    
    
    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #12

      Then the easiest way is to rebuild the plugin against your installed MySQL client libraries. It's described here

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

      T 1 Reply Last reply
      0
      • SGaistS SGaist

        Then the easiest way is to rebuild the plugin against your installed MySQL client libraries. It's described here

        T Offline
        T Offline
        Tas-sos
        wrote on last edited by
        #13

        @SGaist
        Could someone please guide me?
        This guide does not help that much.. :/

        There is no other way?

        1 Reply Last reply
        0
        • hskoglundH Online
          hskoglundH Online
          hskoglund
          wrote on last edited by
          #14

          Hi, you could try to trick Qt you've got the correct file, by using the newer version as the older one (just a guess :-):
          cp libmysqlclient_r.so.18.0.0 libmysqlclient_r.so.16

          T 1 Reply Last reply
          0
          • hskoglundH hskoglund

            Hi, you could try to trick Qt you've got the correct file, by using the newer version as the older one (just a guess :-):
            cp libmysqlclient_r.so.18.0.0 libmysqlclient_r.so.16

            T Offline
            T Offline
            Tas-sos
            wrote on last edited by
            #15

            @hskoglund
            I tried to shortcut and copy as you say now.
            but the same effect :

            code :

                QPluginLoader loader;
                loader.setFileName("/home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so");
                qDebug() << "PluginLoader worked =" << loader.load();
                qDebug() << "Plugin Loader error=" << loader.errorString();
            

            error :

            PluginLoader worked = false
            Plugin Loader error= "Cannot load library /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so: (/usr/lib/i386-linux-gnu/libmysqlclient_r.so.16: version `libmysqlclient_16' not found (required by /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so))"
            
            1 Reply Last reply
            0
            • hskoglundH Online
              hskoglundH Online
              hskoglund
              wrote on last edited by
              #16

              Ok, maybe you need to go further tricking Qt also that the libmysqlclient.so.16 is fine and well, by also copying that file:
              cp libmysqlclient.so.18.0.0 libmysqlclient.so.16

              T 1 Reply Last reply
              0
              • hskoglundH hskoglund

                Ok, maybe you need to go further tricking Qt also that the libmysqlclient.so.16 is fine and well, by also copying that file:
                cp libmysqlclient.so.18.0.0 libmysqlclient.so.16

                T Offline
                T Offline
                Tas-sos
                wrote on last edited by
                #17

                @hskoglund
                oops you're right! I had not noticed the name. But now? I have this error :

                PluginLoader worked = false
                Plugin Loader error= "Cannot load library /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so: (/usr/lib/i386-linux-gnu/libmysqlclient_r.so.16: version `libmysqlclient_16' not found (required by /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so))"
                

                and these files :

                :/usr/lib/i386-linux-gnu$ ls | grep libmysql
                libmysqlclient.a
                libmysqlclient_r.a
                libmysqlclient_r.so
                libmysqlclient_r.so.16
                libmysqlclient_r.so.18
                libmysqlclient_r.so.18.0.0
                libmysqlclient.so
                libmysqlclient.so.16
                libmysqlclient.so.18
                libmysqlclient.so.18.0.0
                
                
                1 Reply Last reply
                0
                • hskoglundH Online
                  hskoglundH Online
                  hskoglund
                  wrote on last edited by
                  #18

                  Ahhh, sorry it seems the ruse didn't work all the way :-(
                  It's probably a version resource or something simular in the libmysqlclient.so.18.0.0 file that says "version 18" and not "version 16".

                  Anyway I think your next step is instead to try to download and install the kosher *.16, have you tried?
                  sudo apt-get install libmysqlclient16

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

                    You can't cheat like that on Linux ;)

                    @Tas-sos what trouble did you have to rebuild the plugin ? It's really just grab Qt's source and follow the lines of the documentation.

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

                    T 1 Reply Last reply
                    0
                    • SGaistS SGaist

                      You can't cheat like that on Linux ;)

                      @Tas-sos what trouble did you have to rebuild the plugin ? It's really just grab Qt's source and follow the lines of the documentation.

                      T Offline
                      T Offline
                      Tas-sos
                      wrote on last edited by Tas-sos
                      #20

                      @hskoglund

                      Never mind my friend anyway thank you very much!
                      Yes I have tried it and got this:

                      E: Unable to locate the package libmysqlclient16
                      

                      or this :

                      E: Unable to locate the package libmysqlclient16-dev
                      

                      @SGaist
                      xaxaax my friend like your answer.
                      "You can't cheat like that on Linux ;)"

                      As for the guide (documentation) , basically confuses me a little and I do not know if I can follow him because for example he says to run this command :

                      cd $QTDIR/qtbase/src/plugins/sqldrivers/mysql
                      

                      But me the file structure is :

                      :~$ ls Qt 
                      5.4
                      components.xml
                      Docs
                      Examples
                      Extras
                      InstallationLog.txt
                      Licenses
                      MaintenanceTool
                      MaintenanceTool.dat
                      MaintenanceTool.ini
                      network.xml
                      Tools
                      
                      :~/Qt/5.4$ ls
                      android_armv7  gcc
                      
                      :~/Qt/5.4/gcc$ ls
                      bin
                      icudtl.dat
                      imports
                      include
                      lib
                      libexec
                      mkspecs
                      phrasebooks
                      plugins
                      qml
                      qtwebengine_resources.pak
                      translations
                      
                      :~/Qt/5.4/gcc/plugins$ ls -l
                      
                      audio
                      bearer
                      designer
                      generic
                      geoservices
                      iconengines
                      imageformats
                      mediaservice
                      platforminputcontexts
                      platforms
                      platformthemes
                      playlistformats
                      position
                      printsupport
                      qml1tooling
                      qmltooling
                      qtwebengine
                      sensorgestures
                      sensors
                      sqldrivers  <-----------
                      
                      :~/Qt/5.4/gcc/plugins$ tree sqldrivers/
                      sqldrivers/
                      ├── libqsqlite.so
                      ├── libqsqlmysql.so
                      └── libqsqlpsql.so
                      

                      the path that says, to me (as you see) does not exist. :/
                      Extra searches:

                      find  ~/Qt -name "sqldrivers"
                      /home/myuser/Qt/Tools/QtCreator/bin/plugins/sqldrivers
                      /home/myuser/Qt/5.4/gcc/plugins/sqldrivers
                      
                      $find  ~/Qt -name "qtbase"
                      -nothing-
                      
                      $ find  ~/Qt -name "mysql"
                      -nothing-
                      

                      In my system the folders with name "mysql" are only those :

                      sudo find  / -name "mysql"
                      /var/lib/mysql
                      /var/lib/mysql/mysql
                      /var/log/mysql
                      /etc/apparmor.d/abstractions/mysql
                      /etc/init.d/mysql
                      /etc/mysql
                      /usr/bin/mysql
                      /usr/lib/perl5/auto/DBD/mysql
                      /usr/lib/perl5/DBD/mysql
                      /usr/lib/mysql
                      /usr/share/maven-repo/mysql
                      /usr/share/mysql
                      /usr/share/bash-completion/completions/mysql
                      /usr/include/mysql
                      /usr/include/mysql/mysql
                      

                      and folder named "qtbase" does not exist.
                      For this reason the documentation does not help.

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

                        That's because you don't have the Qt sources installed. Use maintenancetool to download them.

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

                        T chawilaC 2 Replies Last reply
                        1
                        • SGaistS SGaist

                          That's because you don't have the Qt sources installed. Use maintenancetool to download them.

                          T Offline
                          T Offline
                          Tas-sos
                          wrote on last edited by
                          #22

                          @SGaist
                          Unbelievable though it was in front of me I had no idea about the "maintenancetool". I am inexperienced with using Qt not know so much about this, but I hope now to learn.

                          I ran as you said the "MaintenanceTool" located in the "Qt" folder and i installed the "sources".
                          Then I have what I needed! :D

                          The guide now is satisfactory and effective. ;)

                          Simply the guide says this path:

                          cd $QTDIR/qtbase/src/plugins/sqldrivers/mysql
                          

                          to me is this:

                          /home/myuser/Qt/5.4/Src/qtbase/src/plugins/sqldrivers/mysql
                          

                          Then because I have and version "Qt4" this command:

                          qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
                          

                          i run in this way:

                          /home/myuser/Qt/5.4/gcc/bin/qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
                          

                          All now work perfectly! I'm very happy about that! I Struggled a lot with this issue and does not need nor expecting.
                          Thank you very very much my friends! I am indebted to your with your efficient and fast help!

                          THANK YOU!

                          chawilaC G 2 Replies Last reply
                          0
                          • T Tas-sos

                            @SGaist
                            Unbelievable though it was in front of me I had no idea about the "maintenancetool". I am inexperienced with using Qt not know so much about this, but I hope now to learn.

                            I ran as you said the "MaintenanceTool" located in the "Qt" folder and i installed the "sources".
                            Then I have what I needed! :D

                            The guide now is satisfactory and effective. ;)

                            Simply the guide says this path:

                            cd $QTDIR/qtbase/src/plugins/sqldrivers/mysql
                            

                            to me is this:

                            /home/myuser/Qt/5.4/Src/qtbase/src/plugins/sqldrivers/mysql
                            

                            Then because I have and version "Qt4" this command:

                            qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
                            

                            i run in this way:

                            /home/myuser/Qt/5.4/gcc/bin/qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
                            

                            All now work perfectly! I'm very happy about that! I Struggled a lot with this issue and does not need nor expecting.
                            Thank you very very much my friends! I am indebted to your with your efficient and fast help!

                            THANK YOU!

                            chawilaC Offline
                            chawilaC Offline
                            chawila
                            wrote on last edited by
                            #23
                            This post is deleted!
                            1 Reply Last reply
                            0
                            • SGaistS SGaist

                              That's because you don't have the Qt sources installed. Use maintenancetool to download them.

                              chawilaC Offline
                              chawilaC Offline
                              chawila
                              wrote on last edited by
                              #24

                              @SGaist said in QSqlDatabase: QMYSQL driver not loaded:

                              That's because you don't have the Qt sources installed. Use maintenancetool to download them.

                              Can someone tell please me what are QT sources..

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

                                Hi,

                                As silly as it may sound: that's the sources of the Qt library.

                                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
                                • SGaistS SGaist

                                  Can you run ldd on Qt's MySQL plugin ?

                                  chawilaC Offline
                                  chawilaC Offline
                                  chawila
                                  wrote on last edited by
                                  #26
                                  This post is deleted!
                                  1 Reply Last reply
                                  0
                                  • T Tas-sos

                                    @SGaist
                                    Unbelievable though it was in front of me I had no idea about the "maintenancetool". I am inexperienced with using Qt not know so much about this, but I hope now to learn.

                                    I ran as you said the "MaintenanceTool" located in the "Qt" folder and i installed the "sources".
                                    Then I have what I needed! :D

                                    The guide now is satisfactory and effective. ;)

                                    Simply the guide says this path:

                                    cd $QTDIR/qtbase/src/plugins/sqldrivers/mysql
                                    

                                    to me is this:

                                    /home/myuser/Qt/5.4/Src/qtbase/src/plugins/sqldrivers/mysql
                                    

                                    Then because I have and version "Qt4" this command:

                                    qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
                                    

                                    i run in this way:

                                    /home/myuser/Qt/5.4/gcc/bin/qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
                                    

                                    All now work perfectly! I'm very happy about that! I Struggled a lot with this issue and does not need nor expecting.
                                    Thank you very very much my friends! I am indebted to your with your efficient and fast help!

                                    THANK YOU!

                                    G Offline
                                    G Offline
                                    Gualtix
                                    wrote on last edited by Gualtix
                                    #27

                                    @SGaist @Tas-sos Im just Right where you are, usgin make... put i have this error:
                                    'MySql Lib is Not Defined'

                                    0_1558483350957_f0fa2c95-6be7-4055-8355-c23fad355ed9-image.png

                                    Help Please!!!

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

                                      @Gualtix Hi and welcome to devnet, you are not following the current documented procedure.

                                      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

                                      • Login

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