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

Qt使用MySql提示QMYSQL driver not loaded

介绍

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自动打包不会打包此文件,需要自行拷贝

赞(0) 打赏
未经允许不得转载:Coologic » Qt使用MySql提示QMYSQL driver not loaded

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏