MYSQL connection on deployment machines not work (Windows)
-
Hi,
Start your application with the QT_DEBUG_PLUGINS environment variable set to one. You'll have more information about what is failing with the plugin.
-
Sorry, I was meaning 1 (note that the documentation states a non zero value so what you did should be enough)
Did you try with the deployment of a debug build ?
-
Ok I'm stupid sometimes, I configured cmake as win32 gui application with option set(CMAKE_WIN32_EXECUTABLE ON) then no output in console ^^
So now the debug give me some infowith a bad news....QFactoryLoader::QFactoryLoader() looking at"Y:/Project/build-gynemanager-desktop-client-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug/sqldrivers/qsqlmysqld.dll"Found metadata in lib Y:/Project/build-gynemanager-desktop-client-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug/sqldrivers/qsqlmysqld.dll, metadata={ "IID":"org.qt-project.Qt.QSqlDriverFactoryInterface", "MetaData":{ "Keys":[ "QMYSQL3", "QMYSQL" ] }, "archreq":1, "className":"QMYSQLDriverPlugin", "debug":true, "version":330752 } ... ... ... Impossible de charger la bibliothÞque Y:\Project\build-gynemanager-desktop-client-Desktop_Qt_5_12_6_MSVC2017_64bit-debug\sqldrivers\qsqlmysqld.dllá:Le module spÚcifiÚ est introuvable QLibraryPrivate::loadPlugin failed on"Y:/Project/build-gynemanager-desktop-client-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug/sqldrivers/qsqlmysqld.dll":"Impossible de charger la bibliothÞque Y:\\Project\\build-gynemanager-desktop-client-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug\\sqldrivers\\qsqlmysqld.dllá: Le module spÚcifiÚ est introuvable."QSqlDatabase:QMYSQL driver not loaded
Failed to load the model sqldrivers\qsqlmysqld module not fount oO.
But I look at this folder there is the dll:\build-gynemanager-desktop-client-Desktop_Qt_5_12_6_MSVC2017_64bit-Debug\sqldrivers 26.11.2019 20:55 <DIR> . 26.11.2019 20:55 <DIR> .. 08.11.2019 17:37 1 832 056 qsqlited.dll 26.11.2019 20:29 177 664 qsqlmysqld.dll 08.11.2019 17:37 216 696 qsqlodbcd.dll 08.11.2019 17:37 183 928 qsqlpsqld.dll 4 fichier(s) 2 410 344 octets 2 Rép(s) 22 987 157 504 octets libres
-
Ok I can reproduce this in my development machine by removing libmysql.dll or libmysqld.dll (for debug) in the root app directory.
I get the same error.It seems that the deployment machine not look at root folder for libmysql.dll
-
@Gulivert I guess you did not deploy the MySQL client library? qsqlmysqld.dll is not enough - it depends on MySQL client library.
By the way: it looks like you're deploying debug build.@jsulm yes I also deployed the mysql lib, this one libmysql.dll (or libmysqld.dll for debug deployment). It is why I did not understand what is going one.... It is like this lib is not used in deployed machine. Or may there is another mysql lib necessary ?
-
@jsulm yes I also deployed the mysql lib, this one libmysql.dll (or libmysqld.dll for debug deployment). It is why I did not understand what is going one.... It is like this lib is not used in deployed machine. Or may there is another mysql lib necessary ?
-
OK, thank's to Dependency Walker, libmysql.dll need two dll in c:\Windows\system32 that I do not have in my deployment machine.
- msvcp120.dll
- msvcr120.dll
I copied this two dll from development machine and this is working. Now I need to find which vc%%%%%.exe package I have to install to get this lib in all machines which will get my Application.
Maybe you have some hints to help me.
Thank you all for your proposition!
EDIT : IF I add these two libraries in the application root folder this is also working.
So just have a question, whywindeployqt
do not copy them in my application folder ? Is it a bad configuration in the development machine with environment variables?
I'm noob in Windows development I'm mainly targeting MacOS system usually... -
OK, thank's to Dependency Walker, libmysql.dll need two dll in c:\Windows\system32 that I do not have in my deployment machine.
- msvcp120.dll
- msvcr120.dll
I copied this two dll from development machine and this is working. Now I need to find which vc%%%%%.exe package I have to install to get this lib in all machines which will get my Application.
Maybe you have some hints to help me.
Thank you all for your proposition!
EDIT : IF I add these two libraries in the application root folder this is also working.
So just have a question, whywindeployqt
do not copy them in my application folder ? Is it a bad configuration in the development machine with environment variables?
I'm noob in Windows development I'm mainly targeting MacOS system usually... -
Thank you for your reply.
Yes I thought the same as you and try to install the last vcredis C++ from my Visutal Studio installation but without any success. It give me msvcp140.dll.
Anyway, currently I do not have time to investigate my Windows development machine configuration, there is clearly a problem between QT Creator environment variable used to compile my app and my manual settings when I compile DLL from my terminal. I will investigate that the next year, right now I missed enough time with this trouble of mysql dll to get it work and I have to code to finish the next release of my app which have to be released on December...To fix this problem temporary I copied de missing dll by hand and add them in the MSI package installer to be deployed to the target customer machines in the app root folder. It's not the best solution but it works.