QSqlDatabase: QMYSQL driver not loaded available drivers: QMYSQL



  • I am trying to connect to a MySQL database.
    It is currently give me this error:

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

    I have used: #include <QtSql> at the top. I have added QT += sql in the pro file.
    I have MySQL installed. I have the libmysql.dll in the same folder as my .exe.
    I have qsqlmysql.dll and qsqlmysqld.dll in /plugins/sqldrivers and also in a folder called sqldrivers where the .exe exists.
    I have made the qsqlmysql.dll and qsqlmysqld.dll files myself.

    I have ran out of ideas why is can not load but is available.


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    Do you also have the MySQL client libraries installed on your computer ?



  • Hi,

    please guys, before create a new thread use the SEARCH tool in this forum.
    I (and probably a lot of guys like @SGaist) answered at least to 4/5 threads with exactly the same question in this week



  • @SGaist I have the Connector/C++ installed, I also have MySQL Server, MySQL Workbench and MySQL for Visual Studio installed.


  • Moderators

    @fennec Use dependencywalker to find out which dll's are missing. Check for qsqlmysql dll.



  • @p3c0 I used the dependenctwalker as these are the missing .dll's but its not anything to do with mysql

    API-MS-WIN-APPMODEL-RUNTIME-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
    API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
    API-MS-WIN-SHCORE-SCALING-L1-1-1.DLL
    DCOMP.DLL
    IESHIMS.DLL
    

    I used Profiling and when I click the button that calls the mysql to connect i get this:

    Loaded "QSQLMYSQLD.DLL" at address 0x000000006AD80000.  Successfully hooked module.
    Unloaded "QSQLMYSQLD.DLL" at address 0x000000006AD80000.
    LoadLibraryW("E:\Qt\5.4\msvc2013_64\plugins\sqldrivers\qsqlmysqld.dll") returned NULL. Error: %1 is not a valid Win32 application (193).
    QSqlDatabase: QMYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
    

    I have qsqlmysqld.dll in that folder.



  • Hi,

    is the mysqlclient.dll in your PATH??

    Which compiler/kit are you using?

    May help?? https://forum.qt.io/topic/53247/solved-qtsql-and-xampp-mysql-qmysqldriver-not-loaded/6



  • @mcosta I have now added the lib of XMAPP and MYSQL server to path and Path still the same problem.
    I am currently using: Desktop QT 5.4.1 MSVC2013 64bit
    My other option is: Desktop QT 5.4.1 MSVC2010 OpenGL 32bit, but this give the error: LNK1104: cannot open file 'libmysql.lib'



  • Just to be sure:

    1. In which directory is the mysqlclient library?
    2. can you post the %PATH% contents?


  • @mcosta the mysqlclient lib is in: C:\Program Files\MySQL\MySQL Server 5.6\lib

    This is User Variables:

    C:\Program Files\MySQL\MySQL Server 5.6\lib
    E:\Qt\5.4\mingw491_32\plugins\sqldrivers
    C:\WINDOWS\
    E:\Python27
    %CommonProgramFiles%\Microsoft Shared\Windows Live
    E:\xampp\mysql\lib
    

    This is System Variables:

    C:\Program Files\MySQL\MySQL Server 5.6\lib
    E:\xampp\mysql\lib
    C:\ProgramData\Oracle\Java\javapath
    E:\Program Files\Microsoft Solver Foundation\3.0.2.10889\Plugins
    C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
    %CommonProgramFiles%\Microsoft Shared\Windows Live
    C:\Program Files (x86)\Intel\iCLS Client\
    C:\Program Files\Intel\iCLS Client\
    C:\Windows\system32
    C:\Windows
    C:\Windows\System32\Wbem
    C:\Windows\System32\WindowsPowerShell\v1.0\
    C:\Program Files\Intel\Intel(R) Management Engine Components\DAL
    C:\Program Files\Intel\Intel(R) Management Engine Components\IPT
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
    C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT
    C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\
    C:\Program Files\Microsoft SQL Server\100\Tools\Binn\
    C:\Program Files\Microsoft SQL Server\100\DTS\Binn\
    C:\Program Files\TortoiseSVN\bin
    C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
    C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\
    C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
    E:\xampp\php
    C:\ProgramData\ComposerSetup\bin
    C:\Program Files (x86)\Skype\Phone\
    C:\Program Files\MySQL\MySQL Server 5.6\lib
    E:\Qt\5.4\mingw491_32\plugins\sqldrivers
    


  • Hi,

    do you have mysql both in C:\Program Files\MySQL\MySQL Server 5.6\lib and E:\xampp\mysql\lib ??

    Which version of MySQL do you used to build the Qt driver?
    Keep in mind that the MinGW version of Qt is built in 32bit so you cannot load 64bit libraries



  • @mcosta I have libmysql.lib in both folders

    I used the mysql 5.6.24 server to make the files which is the latest version.

    Since I cant use the 32bit driver for the 64bit. [ill look into making the 64bit later]

    the 32bit version i cannnot build as it give the error: LNK1104: cannot open file 'libmysql.lib'

    I used 'Add Library...' to add libmysql.lib and is put this in the .pro file

    win32:CONFIG(release, debug|release): LIBS += -L$$PWD/C:/Program Files/MySQL/MySQL Server 5.6/lib/ -llibmysql
    else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/C:/Program Files/MySQL/MySQL Server 5.6/lib/ -llibmysqld
    else:unix: LIBS += -L$$PWD/C:/Program Files/MySQL/MySQL Server 5.6/lib/ -llibmysql
    
    INCLUDEPATH += $$PWD/C:/Program Files/MySQL/MySQL Server 5.6/include
    DEPENDPATH += $$PWD/C:/Program Files/MySQL/MySQL Server 5.6/include
    

    but still give the same error.


  • Lifetime Qt Champion

    It should be -lmysql



  • IIRC (sorry now I'm on Mac) in Windows you need to quote paths if they contain spaces.



  • Have you built the Qt driver?? what is the MySQL version used for it??

    IIRC the standard version of MySQL per Windows is built with Visual C++ (I think 64bit); so you cannot link it to a Mingw32 version of Qt



  • @SGaist -lmysql didnt help sorry.
    @mcosta I built the driver myself, using the mysql server 5.6 to build the program 32bit
    currently im making a vmware station of linux and win7 clean installs and install qt and mysql on that and try it out.
    though i have been busy the last couple of days this may take some time.


  • Lifetime Qt Champion

    One thing's not clear, are you trying to build the plugin against the embedded MySQL server ?



  • @fennec As I said in a previous post you should check that the MySQL version you're using to build the Qt Driver is in 32bit because you're using a 32bit Qt version.

    And really I don't understand why you have two different version of MySQL installed on your machine



  • I have made a VM of windows 7 and it works. so something is wrong with my pc but works on a clean win7.



  • Hello everybody!
    Firstly I'm sorry for resurrecting the thread, but my question is the same of the OP and I don't want to create a new one topic for the same problem.

    Let me state what's happening with me:
    I have Qt 5.7 and also MySQL 5.5 installed on my PC, I'm using mysql database on my program and it works... I do everything with it, read and write on database. No problem here.

    When I deploy the app using the 'windeployqt' it generates all the dlls needed to the program run BUT the database don't connects and I get the error "Driver not loaded"... Crazy..

    The mysql server is running and accessible for external connections. I'm connected on it by MySQL Workbench, so.. it's not about the access, its the driver...

    I really don't understand how it works on my PC and the deploied program doesn't.

    Please help me!


  • Lifetime Qt Champion

    @EXTREME Hi and welcome to devnet,

    Did you also deploy the MySQL client .dlls with your application ?



  • Hi @SGaist, thanks.

    Yes, there are the qsqlmysql.dll on sqldrivers folder, and I copied manually the libmysql.dll to the exe folder and the sqldriver folder.

    Thing is, the app run on my computer, where I'm compiling and deploying from the deploied folder but I copied the whole program folder to my girlfriend's pc and I get the 'Driver not loaded' error.

    I also installed the MySQL Connector C on it, but.. nothing.

    Just to make sure I have those dlls on sqldriver folder:
    libmysql
    qsqlite
    qsqlmysql
    qsqlmysql4
    qsqlodbc
    qsqlpsql

    The program just doesn't connect to the database because of drivers.
    I can't figure out what to do now :(


  • Lifetime Qt Champion

    Run Dependency Walker on the plugin to see if it finds anything.

    You can also start the application in command line window and use QT_DEBUG_PLUGINS environment variable. That should give you more hints about what is going on.



  • @SGaist said in [Solved] QSqlDatabase: QMYSQL driver not loaded available drivers: QMYSQL:

    Run Dependency Walker on the plugin to see if it finds anything.

    You can also start the application in command line window and use QT_DEBUG_PLUGINS environment variable. That should give you more hints about what is going on.

    Running Dependency Walker on the exe ?
    If yes, here is it:
    alt text

    Maybe are the microsoft runtimes missing? Or anything else? I saw that the dll IESHIMS.dll was missing, I found it on Internet Explorer's folder and copied to the exe folder, but still not working.. the app loads but with the 'Driver not found' error..

    Thats turning my hairs into grey lol


  • Lifetime Qt Champion

    No, not the executable, the Qt MySQL plugin.



  • @SGaist said in [Solved] QSqlDatabase: QMYSQL driver not loaded available drivers: QMYSQL:

    No, not the executable, the Qt MySQL plugin.

    The qsqlmysql.dll ? If yes..
    alt text
    PS: I already have these dlls on the exe folder. Tried to copy to the sqldrivers folder, but got the same error "Driver not loaded".



  • God... finally got it working!!!

    Tried many libmysql.dlls and got one that works.

    Thanks @SGaist for your time :)


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.