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. QSqlDatabase: QMYSQL driver not loaded / Build MySQL Plugin

QSqlDatabase: QMYSQL driver not loaded / Build MySQL Plugin

Scheduled Pinned Locked Moved Solved Installation and Deployment
qmysqlsqlmoduleubuntu 14.04linux mint
32 Posts 9 Posters 42.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S SGaist
    3 Jan 2016, 11:47

    Hi and welcome to devnet,

    Your code is wrong, you are creating an invalid QSqlDatabase object on the heap and then you call a static function on it.

    Please take a look at QSqlDatabase's detailed documentation. There's an example there on how to do the setup and connection.

    R Offline
    R Offline
    RalfSchaefer
    wrote on 3 Jan 2016, 13:07 last edited by
    #21

    @SGaist Thanks for your help!! That's it. Now all works fine for me!

    1 Reply Last reply
    0
    • F Offline
      F Offline
      fikou1335
      wrote on 13 May 2016, 16:34 last edited by fikou1335
      #22

      Hi SGaist,

      I have a new problem with QMysql, everything worked fine since today, actually when I executede this line

          DB = QSqlDatabase::addDatabase( "QMYSQL");
      

      I have this error

      libgcc_s.so.1 must be installed for pthread_cancel to work
      

      I don't know why,

      the plugin is correctly compiled without error, and using the ldd he found the libgcc_s.so.1

      Can you help me please!

      1 Reply Last reply
      0
      • S Offline
        S Offline
        SGaist
        Lifetime Qt Champion
        wrote on 13 May 2016, 20:07 last edited by
        #23

        Hi and welcome to devnet,

        Which architecture are on ?

        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
          fikou1335
          wrote on 14 May 2016, 10:04 last edited by fikou1335
          #24

          Hi and thanks for your quick response

          I m working on Ubuntu 64bits
          i got this

          Precision-M4600:/usr/local/Trolltech/Qt-4.8.6/plugins/sqldrivers$ ldd libqsqlmysql.so 	linux-vdso.so.1 =>  (0x00007ffceb314000)
          	libmysqlclient.so.18 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 (0x00007f7a884c6000)
          	libQtSql.so.4 => /usr/local/Trolltech/Qt-4.8.6/lib/libQtSql.so.4 (0x00007f7a88285000)
          	libQtCore.so.4 => /usr/local/Trolltech/Qt-4.8.6/lib/libQtCore.so.4 (0x00007f7a87d91000)
          	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f7a87a7f000)
          	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f7a87868000)
          	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7a874a3000)
          	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f7a8728a000)
          	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7a87086000)
          	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7a86e68000)
          	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f7a86b62000)
          	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f7a8695a000)
          	/lib64/ld-linux-x86-64.so.2 (0x00007f7a88c10000)
          
          

          and this

          Precision-M4600:/usr/lib/x86_64-linux-gnu$ ldd libmysqlclient.so.18
          	linux-vdso.so.1 =>  (0x00007ffe50bc0000)
          	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fe8f4940000)
          	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fe8f473c000)
          	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fe8f451e000)
          	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fe8f4218000)
          	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fe8f3e53000)
          	/lib64/ld-linux-x86-64.so.2 (0x00007fe8f5091000)
          
          

          If I comment the addBase line in my code everything works fine without connecting to the Database of course.
          when I try to list the drivers using

          QStringList driverlist =QSqlDatabase::drivers();
          

          I got this

          Databases: QSQLITE QMYSQL3 QMYSQL

          Everything works fine Monday, I checked the database, I could write on it fine,, but yesterday, it crash my application
          hope it can help!

          1 Reply Last reply
          0
          • F Offline
            F Offline
            fikou1335
            wrote on 14 May 2016, 12:43 last edited by
            #25

            I have just created a new app with the main function and it works and connect fine to my database.

            In my code I comment all the last code that I added this week and SURPRISE it works as well.
            the problem is probably due to a third library that i started to use this week. I ll check why it cause a crach to mysql o_O

            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 14 May 2016, 19:47 last edited by
              #26

              What new library did you add ?

              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
                fikou1335
                wrote on 14 May 2016, 20:26 last edited by
                #27

                This one Dahua SDK

                You can check by yourslef, they have a source example, PTZControl that works fine, but try to add

                      DB = QSqlDatabase::addDatabase( "QMYSQL");   
                

                and you should get the same error.

                this sdk is used to control PTZ cams of Dahua brand.
                I changed my code by creating a new app to control cameras and get the informations of position from my big application.

                put this main instsead of it

                #include <QtGui/QApplication>
                #include "dialog.h"
                #include <QTextCodec>
                #include <QObject>
                #include <QtSql/QSqlDatabase>
                #include <QStringList>
                #include <QtSql/QSqlQuery>
                #include <QtSql/QSqlRecord>
                #include <QVariant>
                #include <iostream>
                
                
                
                int main(int argc, char *argv[])
                {
                    QSqlDatabase DB;
                    cout <<endl<< "try connect MYSQL "<< endl;
                    try
                    {
                        DB = QSqlDatabase::addDatabase( "QMYSQL");
                    }
                    catch(...)
                    {
                        cout << "fatal error"<< endl;
                    }
                    cout << "add database"<< endl;
                    DB.setDatabaseName( "intrusiondetection" );
                    DB.setUserName( "root" );
                
                    DB.setPassword( "root" );
                    cout << "1"<< endl;
                
                    DB.setHostName( "" );
                
                    cout << "try to connect"<< endl;
                    if (DB.open())
                    {
                        cout << "QMYSQL correctly connected "<< endl;
                    }
                    else
                    {
                        cout << "QMYSQL not connected "<< endl;
                    }
                
                
                    QApplication a(argc, argv);
                    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
                    Dialog w;
                    w.show();
                
                    return a.exec();
                }
                
                

                tell me if you got the same error.?

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 14 May 2016, 20:35 last edited by
                  #28

                  One thing that you should first correct: move the database initialization code after the QApplication object creation.

                  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
                    fikou1335
                    wrote on 14 May 2016, 21:11 last edited by
                    #29

                    i already tried every configuration but doesn't work! just a question by the way:
                    Is the QDbus available on the Ubuntu system since they said it is Unix only library..? I try to communicate between PTZcontrol process and my application

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 14 May 2016, 21:23 last edited by
                      #30

                      Ubuntu is a unix based OS since it's based on the Debian distribution. QDBus is available on Linux, OS X and Windows (the two later requires that you install dbus by hand)

                      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
                      • H Offline
                        H Offline
                        Hervinsen
                        wrote on 23 Mar 2017, 12:40 last edited by
                        #31

                        Thanks to your guide, it is working on Kubuntu 16 with Qt 5.8
                        here is my output :

                        • /opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers$ ldd libqsqlmysql.so
                          linux-vdso.so.1 => (0x00007ffcf0bf4000)
                          libQt5Sql.so.5 => /opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers/./../../lib/libQt5Sql.so.5 (0x00007f28a7452000)
                          libQt5Core.so.5 => /opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers/./../../lib/libQt5Core.so.5 (0x00007f28a6d32000)
                          libmysqlclient.so.20 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 (0x00007f28a66fa000)
                          libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f28a6372000)
                          libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f28a5fa2000)
                          libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f28a5d82000)
                          libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f28a5a72000)
                          libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f28a585a000)
                          libicui18n.so.56 => /opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers/./../../lib/libicui18n.so.56 (0x00007f28a53ba000)
                          libicuuc.so.56 => /opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers/./../../lib/libicuuc.so.56 (0x00007f28a5002000)
                          libicudata.so.56 => /opt/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers/./../../lib/libicudata.so.56 (0x00007f28a361a000)
                          libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f28a3412000)
                          librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f28a320a000)
                          libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f28a2fea000)
                          libgthread-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0 (0x00007f28a2de2000)
                          libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f28a2aca000)
                          /lib64/ld-linux-x86-64.so.2 (0x0000560448d0b000)
                          libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f28a285a000)
                        1 Reply Last reply
                        0
                        • A Offline
                          A Offline
                          Amit Talbot
                          wrote on 23 Oct 2017, 17:52 last edited by
                          #32

                          im using qt 5.9 on mac this piece of code worked like charm for me

                          brew install mysql-connector-c
                          
                          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