1、错误分析
在QT和MySQL首次联合使用时,大多数情况会报这样的错误: QSqlDatabase: QMYSQL driver not loaded
报这个错的原因就是QT没有MySQL的驱动,即在QT目录下没有qsqlmysql.dll文件,因此我们需要在QT中重新编译一下MySQL的驱动,得到qsqlmysql.dll文件,并将它放到QT合适的目录下。
2、软件版本
MySQL:MySQL server8.0
QT:QT5.14
3、解决步骤
(1)、通过QT安装目录里的src源码编译qsqlmysql.dll文件
- 在QT安装目录下的src源码里找到MySQL文件夹
这是我的目录:D:\QT5.14\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql
打开mysql文件夹,里面文件如图:
- 双击用Qt creator打开mysql.pro文件,在里面添加如下代码:
LIBS += -L"C:\Program Files\MySQL\MySQL Server 8.0\lib -llibmysql" #添加你MySQL安装目录下lib文件夹里的libmysql文件
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include" #添加你MySQL安装目录下的include文件夹
DEPENDPATH += "C:\Program Files\MySQL\MySQL Server 8.0\include" #添加你MySQL安装目录下的include文件夹
DESTDIR = ../mysql/mysqlDll
注意:上面代码中的文件目录不是唯一的,一定要用自己MySQL的安装目录替换
- 点击左下角的“锤子”,进行构建。
但是点击以后,不出意外的话,会报以下错误:
Cannot read D:/qtsqldrivers-config.pri: No such file or directory
Project ERROR: Library ‘mysql’ is not defined.
这时大家不要着急,咱们一个个解决这些问题:
(1)Cannot read D:/qtsqldrivers-config.pri: No such file or directory
这个错误是因为找不到qtsqldrivers-config.pri文件。但是我们在D:\QT5.14\5.14.1\Src\qtbase\src\plugins\sqldrivers文件下可以找到configure.pri这个文件,因此需要在qsqldriverbase.pri文件中进行修改。
在D:\QT5.14\5.14.1\Src\qtbase\src\plugins\sqldrivers目录下双击打开qsqldriverbase.pri文件,把其中需要qtsqldrivers-config.pri文件的代码(第4行)注释掉,然后添加如下代码:
# include(./configure.pri)
如图所示:
(2)Project ERROR: Library ‘mysql’ is not defined.
这个问题比较简单,只需将mysql.pro文件中的QMAKE_USE += mysql注释掉。
如图:
完成以上步骤后,重新点击左下角“锤子”,即构建成功!
然后打开mysqlDll文件夹,发现里面有了驱动文件:
(2)将qsqlmysql.dll文件放到合适的文件夹下
将psqlmysql.dll文件复制到D:\QT5.14\5.14.1\mingw73_64\plugins\sqldrivers文件夹下
(3)、将MySQL目录下的libmysql.dll文件放到合适的位置
将MySQL安装目录下lib文件夹里的** libmysql.dll**文件复制到D:\QT5.14\5.14.1\mingw73_64\bin文件夹。
完成以上步骤后,QT便可以连接使用MySQL了!