一、前言
由于Qt5.12.3是最后提供mysql数据库插件的版本,往后的版本需要自行编译对应的mysql数据库插件,官方安装包不再提供。使用高版本的Qt就需要自行编译mysql驱动。
若没有编译在QT中调用Qsqldatabase库连接mysql时,提示出现如下问题:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
二、开发环境
系统:Windows 10
Qt版本:Qt5.13.0
mysql版本:Mysql 5.7.35 Win64
查看MySQL版本:Windows查看mysql版本
三、解决办法
3.1、打开mysql.pro
文件
进入Qt 5.13.0安装目录的mysql源码目录中,用Qt Creator 打开mysql.pro。
本地路径:C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql
3.2、mysql.pro文件修改
(1)屏蔽
#QMAKE_USE += mysql
(2)添加MySql头文件路径、MySql的库文件路径、指定编译后文件输出的位置
INCLUDEPATH += $$quote(C:\Program Files\MySQL\MySQL Server 5.7\include)
LIBS += -L$$quote(C:\Program Files\MySQL\MySQL Server 5.7\lib) -llibmysql
DESTDIR = ../mysql/MingW_64_mysqlDll
(3)运行项目代码,在mysql/MingW_64_mysqlDll
路径下生成编译生成的DLL驱动
(4)复制生成的dll到使用编译套件的Qt目录下
生成DLL路径:C:\Qt\Qt5.13.0\5.13.0\Src\qtbase\src\plugins\sqldrivers\mysql\MingW_64_mysqlDll
本机目录:C:\Qt\Qt5.13.0\5.13.0\mingw73_64\plugins\sqldrivers
四、总结
通过上述步骤,可以解决项目在Qt执行时连接MYSQL数据库如果报找不到QMYSQL驱动的问题。
但是在项目进行发布时,需要将MySQL路径(C:\Program Files\MySQL\MySQL Server 5.7\lib
)下的libmysql.dll和libmysql.lib文件放在项目的发布目录里,发布项目才能正常连接数据库。