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 27.2k 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 Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Did you check that /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so really exists? Is it 32bit?
    One note: if you add a directory to library path then do not pass the file name! It must be a directory.

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

    T 1 Reply Last reply
    0
    • jsulmJ jsulm

      Did you check that /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so really exists? Is it 32bit?
      One note: if you add a directory to library path then do not pass the file name! It must be a directory.

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

      @jsulm Firstly thank you very much friend for so prompt reply.
      Yes I have 32-bit.

      As for the file:

      ls Qt/5.4/gcc/plugins/sqldrivers/
      libqsqlite.so  libqsqlmysql.so  libqsqlpsql.so
      

      one more effort:

          qDebug() << QCoreApplication::libraryPaths();
          QCoreApplication::addLibraryPath("/home/myuser/Qt/5.4/gcc/plugins/sqldrivers/");
          qDebug() << QSqlDatabase::drivers();
      
      
          QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
          db.setHostName("localhost");
          db.setDatabaseName("myTEST_db");
          db.setUserName("root");
          db.setPassword("123456789");
          if (!db.open())
          {
            QMessageBox::critical(0, QObject::tr("Database Error"),
                      db.lastError().text());
      

      Error :

      ("/home/myuser/Qt/5.4/gcc/plugins", "/home/myuser/Qt TestProject/build-TestProject-Desktop_Qt_5_4_1_GCC_32bit-Debug")
      ("QSQLITE", "QMYSQL", "QMYSQL3", "QPSQL", "QPSQL7")
      QSqlDatabase: QMYSQL driver not loaded
      QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
      
      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #4

        Hi,

        Do you have the MySQL client libraries installed 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

        T 1 Reply Last reply
        0
        • SGaistS SGaist

          Hi,

          Do you have the MySQL client libraries installed on your system ?

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

          @SGaist If i do not do wrong , yes.
          Extra now again I ran :

          sudo apt-get install mysql-client
          sudo apt-get install libmysqlclient-dev
          sudo apt-get install libqt5sql5-mysql
          sudo apt-get install libmysqlclient16-dev
          sudo apt-get install libmysql++-dev
          

          Because I despaired, that I have found of libraries i have installing.

          But absolutely nothing. I did not expect to be so hard. :(

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

            Can you run ldd on Qt's MySQL plugin ?

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

              Can you run ldd on Qt's MySQL plugin ?

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

              @SGaist
              this is what you mean;

              :~/Qt/5.4/gcc/plugins/sqldrivers$ ldd libqsqlmysql.so
              	linux-gate.so.1 =>  (0xb76e3000)
              	libmysqlclient_r.so.16 => not found
              	libQt5Sql.so.5 => /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0xb7672000)
              	libQt5Core.so.5 => /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0xb712d000)
              	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb702b000)
              	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6e7d000)
              	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6e61000)
              	libicui18n.so.53 => /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/./../../lib/libicui18n.so.53 (0xb6c0a000)
              	libicuuc.so.53 => /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/./../../lib/libicuuc.so.53 (0xb6a8a000)
              	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb6a85000)
              	libgthread-2.0.so.0 => /usr/lib/i386-linux-gnu/libgthread-2.0.so.0 (0xb6a82000)
              	librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6a79000)
              	libglib-2.0.so.0 => /lib/i386-linux-gnu/libglib-2.0.so.0 (0xb696d000)
              	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6926000)
              	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6908000)
              	/lib/ld-linux.so.2 (0xb76e4000)
              	libicudata.so.53 => /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/./../../lib/libicudata.so.53 (0xb547f000)
              	libpcre.so.3 => /lib/i386-linux-gnu/libpcre.so.3 (0xb5441000)
              

              I entered the forum to tell you , this problem have just i found. xaxa and I see that what you ask (if i do not do wrong)

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

                That's probably the problem:
                libmysqlclient_r.so.16 => not found

                It looks like the MySQL lib is not installed.

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

                1 Reply Last reply
                0
                • T Offline
                  T Offline
                  Tas-sos
                  wrote on last edited by
                  #9

                  what can I do to fix it?

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

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

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

                    T 1 Reply Last reply
                    0
                    • 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 Offline
                            hskoglundH Offline
                            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 Offline
                                hskoglundH Offline
                                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 Offline
                                    hskoglundH Offline
                                    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

                                          • Login

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