QSqlDatabase: QMYSQL driver not loaded 解决方法(debug下正常,release下报错)
环境:
QT 5.11
Mysql 5.5
MSVC 2015 编译器
以上全为64位
症状为:
Debug下连接数据库正常,Release下连接数据库失败
提示如下:
QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
注意,这种情况下根本就不需要手动编译Mysql driver,因为Qt5.2版本后已经自带了
按网上说的各种方法,到处粘贴dll,包括exe同级目录下,还有main下添加
QApplication::addLibraryPath("./plugins");
等...以及FQ查看了各种方法,折腾一上午统统无效。
最后解决方案:
在MySQL官网https://dev.mysql.com/downloads/connector/c/
下载mysql-connector-c
(mysql-connector-c-6.1.11-winx64.msi)
安装,然后在Qt项目中 .qrc 文件添加
INCLUDEPATH += $$quote(C:\Program Files\MySQL\MySQL Connector C 6.1\include) LIBS += -L$$"C:\Program Files\MySQL\MySQL Connector C 6.1\lib"
清除,重新qmake,构建,打开发现依然失败,而debug下还是成功。
辗转无果,最后删除项目的release文件夹,重新release下构建,运行,成功。
然后打包发布,把connector文件夹里的libmysql.dll复制,粘贴到exe同级目录下,运行,一切正常。
可以开心地玩耍Qt了。