Cant connect to mysql database: QMYSQL driver not loaded
-
@lucaynnofrota said in Cant connect to mysql database: QMYSQL driver not loaded:
D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers
This is not a command but a directory!
Please change tocd D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers
then
qmake -- MYSQL_INCDIR="C:\Program Files\MySQL\MySQL Server 8.0\include" MYSQL_LIBDIR="C:\Program Files\MySQL\MySQL Server 8.0\lib"
Thanks for reply but I made a mistake. I removed CD on publication. But I have executed the correct code.
-
Thanks for reply but I made a mistake. I removed CD on publication. But I have executed the correct code.
@lucaynnofrota If you get
"'D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers' is not recognized as an internal or external command,
operable program or batch file."
it means that you're trying to execute it. So, are you really sure you didcd D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers
?
-
@lucaynnofrota If you get
"'D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers' is not recognized as an internal or external command,
operable program or batch file."
it means that you're trying to execute it. So, are you really sure you didcd D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers
?
-
Does anyone succeed with MySQL and Qt under Windows? I believe that nobody reaches the DB. So! no MySQL connection with Qt? Those who give their help didn't really try, I wonder.
@realmodus
No idea what you're talking about.@jsulm
Yourcd D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers
I suspect this didn't work for OP as it needs to be
cd /d D:\...
to make theD:
drive the current drive for the subsequentqmake
command to be on the right drive, else it'll still be onC:
? -
@realmodus
No idea what you're talking about.@jsulm
Yourcd D:\Qt\5.11.2\Src\qtbase\src\plugins\sqldrivers
I suspect this didn't work for OP as it needs to be
cd /d D:\...
to make theD:
drive the current drive for the subsequentqmake
command to be on the right drive, else it'll still be onC:
? -
Hi All,
I'm one step closer to my goal, I can now build the plugin. I cannot yet connect to my database.
Steps I've taken:- Download and install https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.11-win32.msi
- Add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path
- Open cmd.exe, and enter the following commands:
c:\Qt\5.10.1\Src\qtbase\src\plugins\sqldrivers>qmake -- MYSQL_INCDIR="c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" MYSQL_LIBDIR="c:\Program Files (x86)\MySQL\MySQL Connector C 6.1"\lib Running configuration tests... Checking for DB2 (IBM)... no Checking for InterBase... no Checking for MySQL... yes Checking for OCI (Oracle)... no Checking for ODBC... yes Checking for PostgreSQL... no Checking for SQLite (version 2)... no Checking for TDS (Sybase)... no Done running configuration tests. Configure summary: Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. yes OCI (Oracle) ........................... no ODBC ................................... yes PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt is now configured for building. Just run 'mingw32-make'. Once everything is built, Qt is installed. You should NOT run 'mingw32-make install'. Note that this build cannot be deployed to other machines or devices. Prior to reconfiguration, make sure you remove any leftovers from the previous build. mingw32-make <<lots of text>>
- Create a new Qt program, with the following options:
Qt widgets application
Name: sqlTest
Kit: Desktop Qt 5.11.1 MinGB 32 bit (default)
ClassName: (MainWindow) (default)
Version control: Git
QT += core gui sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = sqlTest TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h FORMS += \ mainwindow.ui
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QtSql> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("world"); db.setUserName("root"); db.setPassword("PassOlyForForumQuestion"); bool ok = db.open(); qDebug()<<ok; } MainWindow::~MainWindow() { delete ui; }
Program output:
QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 false
Cheers,
Cedric@cdwijs I wish to information you that I have been following the steps you took to build QMySQL driver for Qt 5.13.0 though. However, I got lost at the point you gave three (3) steps you took to get qmake identify mysql driver because at that point my qmake could not identify the driver:
-
Download and install https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.11-win32.msi
-
Add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path
-
Open cmd.exe, and enter the following commands:
-
Are there some other things you did which, perhaps, you did not mention on the steps?
-
In step 2 of your procedure, you said you added C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path. Did you mean path of system variable?
I installed MySQL 8.016 community edition and used the same c++ connector, 6.1 32-bit you used.
Followings are the commands I used but qmake could detect MySQL source driver:
cd C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers
qmake -- MYSQL_INCDIR=C:\Program~Files~(x86)\MySQL\MySQL~Connector~C~6.1\include "MYSQL_LIBDIR=C:\Program~Files~(x86)\MySQL\MySQL~Connector~C~6.1\lib\opt"Can you help where I got it wrong?
Cheers,
Heman.
-
@cdwijs I wish to information you that I have been following the steps you took to build QMySQL driver for Qt 5.13.0 though. However, I got lost at the point you gave three (3) steps you took to get qmake identify mysql driver because at that point my qmake could not identify the driver:
-
Download and install https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.11-win32.msi
-
Add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path
-
Open cmd.exe, and enter the following commands:
-
Are there some other things you did which, perhaps, you did not mention on the steps?
-
In step 2 of your procedure, you said you added C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path. Did you mean path of system variable?
I installed MySQL 8.016 community edition and used the same c++ connector, 6.1 32-bit you used.
Followings are the commands I used but qmake could detect MySQL source driver:
cd C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers
qmake -- MYSQL_INCDIR=C:\Program~Files~(x86)\MySQL\MySQL~Connector~C~6.1\include "MYSQL_LIBDIR=C:\Program~Files~(x86)\MySQL\MySQL~Connector~C~6.1\lib\opt"Can you help where I got it wrong?
Cheers,
Heman.
@heman said in Cant connect to mysql database: QMYSQL driver not loaded:
Are there some other things you did which, perhaps, you did not mention on the steps?
"mingww32-make install" after successful build is missing.
You should not set your PATH globally, do it in the cmd.exe window where you build.
These paths looks strange:
"C:\Program~Files~(x86)\MySQL\MySQL~Connector~C~6.1\include "MYSQL_LIBDIR=C:\Program~Files~(x86)\MySQL\MySQL~Connector~C~6.1\lib\opt""
Use complete paths with escaped spaces. Even better would be to install MySQL stuff in a directory without spaces. -
-
I get it now. It works.
I might have included some kind of atrocities who knows? However, these are the steps I took:- I installed MySQL community edition
- I installed mysql connector c 6.1
- I created a .bat file with the following commands: C:\Windows\System32\cmd.exe /E:ON /V:ON /K C:\Qt\Qt5.13.0\5.13.0\mingw73_32\bin\qmake.exe
SET _ROOT=C:\Qt\Qt5.13.0
SET PATH=C:\Qt\Qt5.13.0\5.13.0\mingw73_32\bin;C:\Qt\Qt5.13.0\Tools\mingw730_32\bin;%PATH% - I run cd C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers
- I run qmake -- MYSQL_INCDIR="C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" MYSQL_LIBDIR="C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib"
mingw32-make
ming32-make install - And lastly, I copied libmysql.dll from C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib to C:\Qt\Qt5.13.0\Tools\mingw730_32\bin
-
Hi All,
I'm one step closer to my goal, I can now build the plugin. I cannot yet connect to my database.
Steps I've taken:- Download and install https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.11-win32.msi
- Add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path
- Open cmd.exe, and enter the following commands:
c:\Qt\5.10.1\Src\qtbase\src\plugins\sqldrivers>qmake -- MYSQL_INCDIR="c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" MYSQL_LIBDIR="c:\Program Files (x86)\MySQL\MySQL Connector C 6.1"\lib Running configuration tests... Checking for DB2 (IBM)... no Checking for InterBase... no Checking for MySQL... yes Checking for OCI (Oracle)... no Checking for ODBC... yes Checking for PostgreSQL... no Checking for SQLite (version 2)... no Checking for TDS (Sybase)... no Done running configuration tests. Configure summary: Qt Sql: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. yes OCI (Oracle) ........................... no ODBC ................................... yes PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt is now configured for building. Just run 'mingw32-make'. Once everything is built, Qt is installed. You should NOT run 'mingw32-make install'. Note that this build cannot be deployed to other machines or devices. Prior to reconfiguration, make sure you remove any leftovers from the previous build. mingw32-make <<lots of text>>
- Create a new Qt program, with the following options:
Qt widgets application
Name: sqlTest
Kit: Desktop Qt 5.11.1 MinGB 32 bit (default)
ClassName: (MainWindow) (default)
Version control: Git
QT += core gui sql greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = sqlTest TEMPLATE = app DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \ main.cpp \ mainwindow.cpp HEADERS += \ mainwindow.h FORMS += \ mainwindow.ui
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QtSql> #include <QDebug> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("world"); db.setUserName("root"); db.setPassword("PassOlyForForumQuestion"); bool ok = db.open(); qDebug()<<ok; } MainWindow::~MainWindow() { delete ui; }
Program output:
QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 false
Cheers,
Cedric@cdwijs said in Cant connect to mysql database: QMYSQL driver not loaded:
Hi All,
I'm one step closer to my goal, I can now build the plugin. I cannot yet connect to my database.
Steps I've taken:- Download and install https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.11-win32.msi
- Add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path
Hi,
I am struggling with the same issue, where exactly did you add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to? -
@cdwijs said in Cant connect to mysql database: QMYSQL driver not loaded:
Hi All,
I'm one step closer to my goal, I can now build the plugin. I cannot yet connect to my database.
Steps I've taken:- Download and install https://downloads.mysql.com/archives/get/file/mysql-connector-c-6.1.11-win32.msi
- Add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to the path
Hi,
I am struggling with the same issue, where exactly did you add C:\Qt\Tools\mingw530_32\bin and C:\Qt\5.10.1\mingw53_32\bin to?@hobbyProgrammer I've added them to the PATH. On widows7, you can find that setting here:
start->control panel->system and security->system->Advanced system settings->Advanced->Environment Variables->System variables->Path->Edit...You can see the current value of the path variable by start->run->cmd and the command:
echo %PATH% -
@hobbyProgrammer I've added them to the PATH. On widows7, you can find that setting here:
start->control panel->system and security->system->Advanced system settings->Advanced->Environment Variables->System variables->Path->Edit...You can see the current value of the path variable by start->run->cmd and the command:
echo %PATH%@cdwijs thanks, but unfortunately it didn't work for me :(
-
@cdwijs thanks, but unfortunately it didn't work for me :(
@hobbyProgrammer Did you log out and log in after changing PATH?
-
@hobbyProgrammer Did you log out and log in after changing PATH?
@jsulm open the cmd again or log out as a computer user?
-
@jsulm open the cmd again or log out as a computer user?
@hobbyProgrammer Log out as user and login again, then check in terminal as @cdwijs suggested.
-
@jsulm open the cmd again or log out as a computer user?
@hobbyProgrammer
In the time it takes to wait for an answer, and in order to be simply confident everything sees the new environment variable, isn't it just quicker to completely log out & in or even reboot and then you know for sure where you are?! -
This post is deleted!
-
Hello,
I have gone through the same issue. there are 2 libmysql.dll libraries version. One for 32 and the other for 64 bits.
These 2 files are both available inhere :
https://www.dll-files.com/libmysql.dll.htmlI advise you to do the following.
-
create a folder in the C drive and name it as you wish and set the PATH to include that folder.
-
Step number 2, reload your system.
-
Step number 3 copy one of the 2 files libmysql.dll in that folder and try to run your binary if this doesnt work then try the second one.
This should work!
have a good day!
-
-
Hello,
I have gone through the same issue. there are 2 libmysql.dll libraries version. One for 32 and the other for 64 bits.
These 2 files are both available inhere :
https://www.dll-files.com/libmysql.dll.htmlI advise you to do the following.
-
create a folder in the C drive and name it as you wish and set the PATH to include that folder.
-
Step number 2, reload your system.
-
Step number 3 copy one of the 2 files libmysql.dll in that folder and try to run your binary if this doesnt work then try the second one.
This should work!
have a good day!
@Back2coding downloading .dlls from 3rd party website like that is usually a bad idea. You do not know what might lurk in there.
-