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 Update on Monday, May 27th 2025

QSqlDatabase: QMYSQL driver not loaded

Scheduled Pinned Locked Moved Solved General and Desktop
qmysqlqsqldatabaseubuntu 14.04driver not load
28 Posts 6 Posters 27.1k 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.
  • T Offline
    T Offline
    Tas-sos
    wrote on 26 Jan 2016, 05:34 last edited by Tas-sos
    #1

    I run ubuntu 14.04 and i installed Qt4 and Qt5. I have created and implemented a project in Qt5 ( specifically : Based on Qt 5.4.1 (GCC 4.6.1, 32 bit) ).

    I try in my programm to make connection to a database ( ΜySql ) but I can not.

    When I run this code:

    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());
        }
    

    I get this error :

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

    When i run this 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();
    
        qDebug() << QCoreApplication::libraryPaths();
        QCoreApplication::addLibraryPath("/home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so");
        qDebug() << QSqlDatabase::drivers();
    

    I get this error :

    PluginLoader worked = false
    Plugin Loader error= "Cannot load library /home/myuser/Qt/5.4/gcc/plugins/sqldrivers/libqsqlmysql.so: (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)"
    ("/home/myuser/Qt/5.4/gcc/plugins", "/home/myuser/Qt TestProject/build-TestProject-Desktop_Qt_5_4_1_GCC_32bit-Debug")
    ("QSQLITE", "QPSQL", "QPSQL7")
    

    I can not understand what is happening, please very much you can help me?
    I stress that I have installed and QT4 (maybe somewhere confused).

    Thank you in advance.

    1 Reply Last reply
    0
    • J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 26 Jan 2016, 06:13 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 26 Jan 2016, 06:51
      0
      • J jsulm
        26 Jan 2016, 06:13

        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 26 Jan 2016, 06:51 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
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 26 Jan 2016, 23:01 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 27 Jan 2016, 00:44
          0
          • S SGaist
            26 Jan 2016, 23:01

            Hi,

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

            T Offline
            T Offline
            Tas-sos
            wrote on 27 Jan 2016, 00:44 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
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 27 Jan 2016, 08:03 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 C 2 Replies Last reply 27 Jan 2016, 09:36
              0
              • S SGaist
                27 Jan 2016, 08:03

                Can you run ldd on Qt's MySQL plugin ?

                T Offline
                T Offline
                Tas-sos
                wrote on 27 Jan 2016, 09:36 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
                • J Offline
                  J Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on 27 Jan 2016, 09:40 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 27 Jan 2016, 09:47 last edited by
                    #9

                    what can I do to fix it?

                    1 Reply Last reply
                    0
                    • J Offline
                      J Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on 27 Jan 2016, 11:57 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 27 Jan 2016, 13:12
                      0
                      • J jsulm
                        27 Jan 2016, 11:57

                        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 27 Jan 2016, 13:12 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
                        • S Offline
                          S Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on 27 Jan 2016, 13:25 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 27 Jan 2016, 17:39
                          0
                          • S SGaist
                            27 Jan 2016, 13:25

                            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 27 Jan 2016, 17:39 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
                            • H Offline
                              H Offline
                              hskoglund
                              wrote on 27 Jan 2016, 18:22 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 27 Jan 2016, 18:44
                              0
                              • H hskoglund
                                27 Jan 2016, 18:22

                                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 27 Jan 2016, 18:44 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
                                • H Offline
                                  H Offline
                                  hskoglund
                                  wrote on 27 Jan 2016, 18:59 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 27 Jan 2016, 19:58
                                  0
                                  • H hskoglund
                                    27 Jan 2016, 18:59

                                    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 27 Jan 2016, 19:58 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
                                    • H Offline
                                      H Offline
                                      hskoglund
                                      wrote on 27 Jan 2016, 20:29 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
                                      • S Offline
                                        S Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on 27 Jan 2016, 20:58 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 29 Jan 2016, 10:31
                                        0
                                        • S SGaist
                                          27 Jan 2016, 20:58

                                          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 29 Jan 2016, 10:31 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

                                          7/28

                                          27 Jan 2016, 09:36

                                          21 unread
                                          • Login

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