Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

06-01 1208阅读

错误背景:

qt连接不上数据库。

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

在使用Qt连接mysql数据库的时候,遇到过这样的报错:

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

        (1)QSqlDatabase: QMYSQL driver not loaded

   (2)QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

这是qt不能够加载数据库的驱动导致的。

解决办法:

一、检查qt的构建设置和mysql的版本

qt的构建设置和mysql要保持相同位数,如我用的是64位,mysql也要是64位的版本。

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

*mysql位数可以在mysql的控制台中输入 “show variables like '%version_%';”查看。

二、生成驱动

Qt目录里缺失了和Mysql的连接插件qsqlmysql.dll。

1.检查驱动

先看看自己的Qt目录下有没有连接插件qsqlmysql.dll,我的文件夹位置(参考):

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

2.编译出qmysql.dll文件

用Qt里的src源码中的mysql源码来编译出qmysql.dll文件。

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

2.1 没有src文件的(找到这个文件的跳过本小节)

有的大佬安装Qt是没有选择安装src源码,没关系,咱们去下载一个就可以了。

清华镜像:Index of /qt/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

下载qt-everywhere-src-xxx.zip就可以了,解压到你的qt文件夹。

访问5.15版本前的需要梯子,请注意。我下载的版本链接:

download.qt.io/archive/qt/5.14/5.14.2/single/

2.2构建mysql.pro

用Qt creator打开mysql.pro,添加下面的三行代码:

INCLUDEPATH +=E:/DateBase/Mysql/mysql-5.7.29-winx64/include/    # 添加你自己的mysql安装目录下的include文件夹

LIBS += E:/DateBase/Mysql/mysql-5.7.29-winx64/lib/libmysql.lib # 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件

DESTDIR = ../mysql/mysqlDll    # 设置编译好的qmysql.dll放置的目录,这个是保存生成的dll文件的位置。

*注意:这几个路径不可以有空格,如果有空格可以加双引号或者把路径放进这个$$quote()方法就好了,不用去重新安装数据库改路径。

或者,还有一个偷懒的办法,即像我一样把这两个文件夹复制到qt文件夹下:

我的文件:

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

代码:

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

然后进行构建,这时会出现两个错误:

Cannot read H:/qtsqldrivers-config.pri: No such file or directory

Project ERROR: Library 'mysql' is not defined.

别担心,我们一个一个解决

1.我们在上一级文件找到打开qsqldriverbase.pri文件,注释掉第四行:#include($$shadowed($PWD)/qtsqldrivers-config.pri)

加上一句  include(./configure.pir)

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

(加油,还剩最后一个问题)

2.重新打开mysql.pro,将第六行注释掉,#QMAKE_USE += mysql

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

注意这个时候需要重新构建,而不是构建!

3.转移驱动

找到之前指定好的dll放置的路径,里面有三个文件

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

统统拷贝到:D:\code\qt5.14\5.14.2\mingw73_64\plugins\sqldrivers

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

完成,此时可以连接数据库了!

Qt连接MySql驱动加载失败问题解决(报错:QSqlDatabase: QMYSQL driver not loaded)

备注

如果上面的办法还是不能帮你解决问题,再试试这个:

1.把mysql的bin目录添加到环境变量

2.将mysql安装目录下的lib文件夹下的libmysql.dll,复制到qt的编译器的bin目录下。

------------------------------------------------------------------------------------------------------------------------------

本人是qt小白,技术有限。写得不好的地方希望各位大佬指正海涵,衷心希望帮助您解决问题~

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码