qt版本:qt-opensource-windows-x86-5.14.2.exe;mysql版本:5.5;VS版本:2017.15.9.62
vs QT插件qt-vsaddin-msvc2017-2.8.1-rev.06 .vsix
问题描述
使用QT连接数据库,无法打开数据库,分为一下两种情况
①无QMYSQL驱动
Qt目录里缺失了和Mysql的连接插件qsqlmysql.dll。
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3
②有QMYSQL驱动但仍然不能访问
Qt目录里和Mysql的连接插件qsqlmysql.dll已经老旧。
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITEQMYSQL QMYSQL3QODBC QODBC3
解决
在【D:\apps\qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql】路径使用QT启动mysql.pro;
1.修改mysql.pro文件
2.1使用MinGW 64构建项目,在当前目录【D:\apps\qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql\mysqlDll】生成三个文件
2.2将这三个文件复制到【 D:\apps\qt\5.14.2\mingw73_64\plugins\sqldrivers】
(使用后并将mysqlDll文件夹更名,防止使用MSVC方式构建时更替文件)
2.3将【C:\Program Files\MySQL\MySQL Server 5.5\lib】中的libmysql.dll,复制到【D:\apps\qt\5.14.2\mingw73_64\bin】
3.1msvc方式
修改【D:\apps\qt\5.14.2\msvc2017_64\mkspecs\common】目录下的msvc-version.conf
添加 QMAKE_MSC_VER=1900 到首行 点击保存即可
3.2选择MSVC方式构建项目
当前目标的mysqlDLL文件夹下产生新的文件
3.3将qsqlmysql.dll、qsqlmysqld.dll复制到【 D:\apps\qt\5.14.2\msvc2017_64\plugins\sqldrivers】
3.4将【C:\Program Files\MySQL\MySQL Server 5.5\lib】中的libmysql.dll,复制到【D:\apps\qt\5.14.2\msvc2017_64\bin】