介绍
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");
解决方案
首先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亮博客,转载请注明:Coologic » Qt使用MySql提示QMYSQL driver not loaded