qt+mysql开发提示driver not loaded driver not loaded

1.首选确认开发环境下mysql驱动dll文件已复制到qt运行目录:

我使用的qt5.9.9+mingw53_32位的开发环境,安装目录在C:\Qt\Qt5.9.9\5.9.9\mingw53_32

此时下载mysql 32位对应的驱动文件libmysql.dll,此dll文件支持连接MySQL版本5.x-8.x,这里的MySQL不区分32位还是64位,也不需要本机安装MySQL数据库

下载链接:https://downloads.mysql.com/archives/get/p/19/file/mysql-connector-c-6.1.11-win32.zip

把dll文件放到C:\Qt\Qt5.9.9\5.9.9\mingw53_32\bin目录下,可以把bin目录添加到系统path下,新建一个qt+mysql项目测试运行没有问题:

qt+mysql开发提示driver not loaded driver not loaded

 

2.如果提示driver not loaded driver not loaded,那就是你的qt 开发环境缺少sqldrivers插件,查看qt目录下是否有这个目录

C:\Qt\Qt5.9.9\5.9.9\mingw53_32\plugins\sqldrivers

如果没有上面的目录或者目录下没有qsqlmysql.dll这个文件,则需要重新安装带src的QT开发环境,就是安装时选择安装src,然后手动编译mysql.pro这个项目,生成qsqlmysql.dll,并将生成的dll复制到上面的插件目录下面,具体怎么编译,网上一大堆教程,这里就不赘叙了。

重点来了本机测试没问题,然后就是发布release版,在没有安装qt环境的电脑上运行,提示

This application failed to start because it could not find or load the Qt platform plugin "windows"

缺少平台运行所需文件

qt+mysql开发提示driver not loaded driver not loaded

 

这时将C:\Qt\Qt5.9.9\5.9.9\mingw53_32\plugins\下的platforms目录复制到exe可执行目录下就行,保留qwindows.dll文件,其他的dll可以删除,然后运行提示driver not loaded driver not loaded想着是缺少libmysql.dll这个文件,把这个dll复制到exe目录,依然提示driver not loaded driver not loaded,这就头大了,总不能把客户电脑上也安装上qt开发环境吧?

我明明把libmysql驱动复制到当前目录了,可还是提示驱动没加载,然后使用

QSqlDatabase::drivers();输出支持的数据库驱动,发现为空,那么问题找到了,实际上qt插件目录下的qsqlmysql.dll文件才是真的驱动文件

把qt插件下的C:\Qt\Qt5.9.9\5.9.9\mingw53_32\plugins\sqldrivers目录也复制到exe下面,运行成功!

至此,可以在非qt环境电脑上运行开发的程序了!

上一篇:实现图片预加载功能


下一篇:Unity AssetBundle一个需要注意的地方