2021-03-25

Qt5使用MYSQL报错QMYSQL driver not loaded的解决办法

很多小伙伴在使用Qt5进行MYSQL数据的开发或者学习的过程中,写好程序编译会出现报错:QMYSQL driver not loaded。经过我在网络上的学习与查找,总结出以下几种可能性。
开头的话:注意使用MySQL数据库时要保证MySQL数据的版本(32位还是64位)与使用的编译器版本(32位还是64位)与Qt类库Qt5.15.0\5.015.0\mingwversion_bit的版本相匹配。

举个例子:MySQL版本位32位 = 编译器版本mingwxx_32 = Qt类库版本mingwxx_32时才能保证能够使用。


注:Qt类库版本路径为Qt5.15.0\5.15.0\mingwxx_32
我们要确保类库的bin路径(Qt5.15.0\5.15.0、 mingwxx_32\bin)里放置的libmysql.dll和libmysql.lib
与(Qt\Qt5.15.0\5.15.0\mingw81_32\plugins\sqldrivers) 里放置的qsqlmysql.dll和qsqlmysql.dll.debug能够匹配。
一般由MySQL 32位的libmysql.dll和libmysql.lib通过mingwxx_32编译过的qsqlmysql.dll和qsqlmysql.dll.debug是可用的。

首先我们检查编译环境下的的mysql驱动,下面是我的路径。

D:\Qt\Qt5.15.0\5.15.0\mingw81_32\plugins\sqldrivers


路径里是否包含了qsqlmysql.dll和qsqlmysql.dll.debug两个文件。下面我们分类说明以下

一、Qt\Qt5.15.0\5.15.0\mingw81_32\plugins\sqldrivers路径里能够找到qsqlmysql.dll和qsqlmysql.dll.debug这两个文件,我们将将libmysql.dll和libmysql.lib导入到对应的类库,来确定是否要重新编译驱动

路径里能够找到这两个文件,我们可以把MySQL安装路径下
(…/lib里) 如下图
在这里插入图片描述
我们将libmysql.dll和libmysql.lib导入到对应的类库里,如你装的是32位的MySQL那么你可以选择Qt安装目录对应类库目录的bin文件夹中。我的路径是:

D:\Qt\Qt5.15.0\5.15.0\mingw81_32\bin

在这里插入图片描述
请注意:我的MySQL位32位版本的,我将libmysql.dll和libmysql.lib放入的也是32位mingw32编译出来的Qt类库的。这样就可以解决qsqlmysql.dll和qsqlmysql.dll.debug存在但编译依然报错的问题了,如果依然有错误那就是qsqlmysql.dll和qsqlmysql.dll.debug与libmysql.dll和libmysql.lib版本不匹配的问题了。
总结:类库路径:D:\Qt\Qt5.15.0\5.15.0\mingw81_32\plugins\sqldrivers里存在qsqlmysql.dll和qsqlmysql.dll.debug但依然报错,那么查看路径D:\Qt\Qt5.15.0\5.15.0\mingw81_32\bin里是否有libmysql.dll和libmysql.lib

1、如果没有则从MySQL/lib中找到这两个文件加入bin中。
2、有则说明MySQL版本与类库版本或者编译器版本不一致。

二、Qt\Qt5.15.0\5.15.0\mingw81_32\plugins\sqldrivers路径里找不到到qsqlmysql.dll和qsqlmysql.dll.debug这两个文件,这说明驱动与mysql的库文件不匹配,那么我们需要重新编译mysql驱动了。
编译驱动的教程见:https://blog.csdn.net/hp_cpp/article/details/105050910

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值