进步始于交流
收获源于分享

Qt使用MySql提示QMYSQL driver not loaded

版权声明:若无来源注明,Techie亮博客文章均为原创。 转载请以链接形式标明本文标题和地址:
本文标题:Qt使用MySql提示QMYSQL driver not loaded     本文地址:http://techieliang.com/2018/01/891/

1. 介绍

Qt5.10使用Mysql提示如下错误:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

QSqlDatabasePrivate::addDatabase: duplicate connection name ‘PalmshopSqlConnection’, old connection removed.

调用方式如下:

QSqlDatabase::addDatabase("QMYSQL");

2. 解决方案

首先Qt后续版本已经打包了支持的数据库的驱动,即完全可以直接通过QSqlDatabase::addDatabase(“QMYSQL”)使用对应的数据库,支持的数据库列表如下:
QPSQL、QMYSQL、QOCI、QODBC、QDB2、QTDS、QSQLITE、QIBASE
每个数据库对应的类:
QPSQLDriver、QMYSQLDriver、QOCIDriver、QODBCDriver、QDB2、QTDSDriver、QSQLiteDriver、QIBaseDriver

驱动文件在:D:\Qt\Qt5.10.0\5.10.0\mingw53_32\plugins\sqldrivers,地址请对应修改

但是这些驱动只是让QSqlDatabase能够使用QMYSQLDriver类,但这个类还是会调用对应数据库的操作库,所以必须安装MySQL,准确来说是必须有MySQL的库“libmysql.dll”和“libmysqld.dll”,这两个文件,文件一般在“\mysql5.7.14\lib\”路径,只需要将这两个文件复制到“D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin”下即可。

重新编译运行即可正常使用。

发布release版本时附带相关文件,不要忘了带上“libmysql.dll”。windeployqt自动打包不会打包此文件,需要自行拷贝

转载请以链接形式标明本文标题和地址:Techie亮博客 » Qt使用MySql提示QMYSQL driver not loaded
分享到: 更多 (0)