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. QMYSQL Driver Setup

QMYSQL Driver Setup

Scheduled Pinned Locked Moved Solved Installation and Deployment
7 Posts 3 Posters 4.6k 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.
  • O Offline
    O Offline
    oxmo35
    wrote on last edited by
    #1

    Hello and sorry for my english,

    I've been trying to install QMYSQL driver for 2 days without success. I use Windows.
    I followed this doc : https://doc.qt.io/qt-5/sql-driver.html

    From "C:\Qt\5.14.1\Src", when I run this command :

    configure -sql-mysql
    

    or :

    configure -sql-mysql MYSQL_PREFIX="C:\MySQL\MySQL Connector C 6.1" MYSQL_INCDIR="C:\MySQL\MySQL Connector C 6.1\include" MYSQL_LIBDIR="C:\MySQL\MySQL Connector C 6.1\lib"
    

    I have the following message :

    ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed.
    

    In the config.log I have in particular :

    test config.qtbase_sqldrivers.libraries.ibase FAILED
    loaded result for library config.qtbase_sqldrivers.libraries.mysql
    Trying source 0 (type mysqlConfig) of library mysql ...
    mysql_config not found.
      => source produced no result.
    Trying source 1 (type mysqlConfig) of library mysql ...
    mysql_config not found.
      => source produced no result.
    Trying source 2 (type mysqlConfig) of library mysql ...
    mysql_config not found.
      => source produced no result.
    Trying source 3 (type mysqlConfig) of library mysql ...
    mysql_config not found.
      => source produced no result.
    Trying source 4 (type inline) of library mysql ...
      => source failed condition '!config.win32'.
    Trying source 5 (type inline) of library mysql ...
    mysql.h not found in [] and global paths.
      => source produced no result.
    Trying source 6 (type inline) of library mysql ...
      => source failed condition '!config.win32'.
    test config.qtbase_sqldrivers.libraries.mysql FAILED
    

    So the QMYSQL driver is not available in the driver list. I've only this :

    ['QSQLITE', 'QODBC', 'QODBC3', 'QPSQL', 'QPSQL7']
    

    I verified that I have these 3 files :

    "C:/MySQL/MySQL Connector C 6.1/lib/libmysql.lib"
    "C:/MySQL/MySQL Connector C 6.1/lib/libmysql.dll"
    "C:/MySQL/MySQL Connector C 6.1/include/mysql.h"
    

    I tried many things as reinstall MySQL and Qt but it's always the same. I searched for hours on other similar topics but I never found the solution.
    I need some help please :)

    1 Reply Last reply
    0
    • Christian EhrlicherC Offline
      Christian EhrlicherC Offline
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Please follow the instructions at https://doc.qt.io/qt-5/sql-driver.html and report back when you encounter problems.

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      1 Reply Last reply
      2
      • O Offline
        O Offline
        oxmo35
        wrote on last edited by oxmo35
        #3

        Hello,

        The original problem is that with PyQt5, when I try to connect to a MYSQL database with :

            db = QSqlDatabase.addDatabase("QMYSQL")
            db.setHostName("localhost")
            db.setUserName("root")
            db.setPassword("")
            db.setDatabaseName("test")
        

        It fails to connect and when I run :

        print(db.drivers())
        

        The result is :

        ['QSQLITE', 'QODBC', 'QODBC3', 'QPSQL', 'QPSQL7']
        

        So I'm investigating about why QMYSQL isn't in this list of available drivers and I tried the instructions in the link you provide (and that I provided in my first post too)

        My problem is described in the firt post. I cannot activate the QMYSQL driver when I run the "configure -sql-mysql" command and the message is "the precondition 'libs.mysql' failed".

        It is possible that I make something wrong as I am a beginner but I don't understand what and it's time to ask for help.

        I this order, I did this :

        Install Qt 5.14.1 with source
        Install MySQL Server Community 8.0
        Install MySQL Connector C 6.1
        Go to C:\Qt\5.14.1\Src>configure -sql-mysql
        

        as described here: https://doc.qt.io/qt-5/sql-driver.html#building-the-drivers

        EDIT: It's now OK with a Qt Project with this main.cpp

        #include "mainwindow.h"
        
        #include <QApplication>
        #include <QtSql>
        
        using namespace std;
        
        int main(int argc, char *argv[])
        {
            QApplication a(argc, argv);
        
            QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
            db.setHostName("localhost");
            db.setUserName("root");
            db.setPassword("");
            db.setDatabaseName("test");
            if(db.open())
            {
        
                qDebug()<< "connecté:" << db.open() << db.drivers();
                db.close();
            }
            else
            {
                qDebug()<< "non connecté:" << db.open();
            }
            
        
            MainWindow w;
            w.show();
            return a.exec();
        }
        

        The output is :

        connecté: true ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
        

        The problem seems to be more with PyQt5 in fact...

        1 Reply Last reply
        0
        • O Offline
          O Offline
          oxmo35
          wrote on last edited by oxmo35
          #4

          Ok, I solved my problem with PyQt5 by copying "qsqlmysql.dll" from :

          C:\Qt\5.14.1\mingw73_64\plugins\sqldrivers
          

          To :

          ..\Python38\Lib\site-packages\PyQt5\Qt\plugins\sqldrivers
          

          QMYSQL driver is now available :

          ['QSQLITE', 'QMYSQL', 'QMYSQL3', 'QODBC', 'QODBC3', 'QPSQL', 'QPSQL7']
          

          I've not seen anywhere this instruction...

          I have now the 'Driver not loaded' error but it's ok I've seen many subjects about it, I will search by myself.

          Thank you.

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

            Hi and welcome to devnet,

            That's because there was a change in the licensing of MySQL. The driver can't be offered anymore under all Qt licences using their libraries.

            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
            • O Offline
              O Offline
              oxmo35
              wrote on last edited by
              #6

              Hi,

              Thank you for this information, because I was still searching.

              With PyQt, my goal is to link a tableview to a MySQL Database. (I already made the connexion with a tablewidget (thanks to pymysql) but i'd like to test Tableview for my project)

              What do you recommend as an alternative to use Tableview and MySQL database ?

              (I'm a beginner, don't hesitate to tell me if there are confusions in what I said)

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

                The thing is: you need to build the MySQL module for the Qt version used by PySide2.

                But since copying since to have at least given you access to it, first start by setting the QT_DEBUG_PLUGINS environment variable set to 1 and launch your python script. You'll have the plugins debug data printed and you'll see why it fails to load.

                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