随笔-379  评论-37  文章-0  trackbacks-0
现象:
QT5.15.1访问MySQL5.7数据库报错:QMYSQL driver not loaded

原因:QT5默认没有安装MySQL驱动。
我尼玛,QT开发者是咋想的?给我DB访问组件却无法访问DB,这不是挖坑让你爹跳吗?你卖瓜不保熟啊!
连SQLite驱动都有,最常用的MySQL却不支持,你这套QT岂不是半成品吗,挺会省事啊,别嘚儿喝的。

解决:
1、按照网上资料介绍,把MySQL安装路径下
C:\Program Files\MySQL\MySQL Server 5.7\lib
里面的libmysql.dll复制到
QT的安装路径下
C:\Qt\5.15.1\msvc2019_64\bin

再次运行程序访问DB,还是失败,仍然报错:QMYSQL driver not loaded
发帖的狗懒子,自己动手试过没有啊,就特么瞎哔哔!

2、打开QT安装路径下
C:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers
看到其中各种类型的驱动库dll,包括sqlite等,唯独没有和mysql有关的dll文件,
问题应该就是这里了,那就想办法弄个mysql的驱动库来

3、打开QT安装路径下的源码
C:\Qt\5.15.1\Src\qtbase\src\plugins\sqldrivers\mysql
双击用QTCreator打开mysql.pro
(1)打开mysql.pro文件
注释掉QMAKE_USE += mysql
结尾添加几行代码:
# 添加你自己的mysql安装目录下的include文件夹
INCLUDEPATH += "C:\Program Files\MySQL\MySQL Server 5.7\include"
# 添加你的mysql安装目录下的lib文件夹下的libmysql.lib文件
LIBS += "C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.lib"
# 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。
DESTDIR = ../mysql/mysqlDll

(2)打开qsqldriverbase.pri文件
注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri)
当前路径的上层路径sqldrivers\中并没有这个qtsqldrivers-config.pri文件,只有configure.pri文件。
改为:
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
尼玛,QT的开发者给个源码也是陷阱重重啊,向你问好:尼玛拉格-彼得!

(1)(2)两步工作做完,开始点锤子图标编译。
编译失败,报错找不到<mysql.h>文件。

再查资料,似乎是QT不能识别路径中的空格。
把MySQL安装路径下的C:\Program Files\MySQL\MySQL Server 5.7文件夹整个拷贝出来并改名为C:\MySQL5
把步骤(1)中添加的代码中的路径改为
INCLUDEPATH += "C:\MySQL5\include"
LIBS += "C:\MySQL5\lib\libmysql.lib"
再次编译,又失败,还是报错找不到<mysql.h>文件

这次似乎是斜杠的问题
把步骤(1)中添加的代码中的路径再改为
INCLUDEPATH += "C:/MySQL5/include"
LIBS += "C:/MySQL5/lib/libmysql.lib"
再次编译,成功!(有可能编译失败,但已生成qsqlmysqld.dll

4、把生成的qsqlmysqld.dll拷贝到QT安装路径下的驱动目录
C:\Qt\5.15.1\msvc2019_64\plugins\sqldrivers
再次运行程序,访问DB,成功!

O了!
牛逼-克拉斯!
尼玛拉格-彼得!
尼玛,真不容易啊!
尼玛,QT的开发者,幸亏你爹我扛造!真应该送你们去菲律宾皮带大队网络科技有限公司进修啊!




参考这哥们:
https://www.cnblogs.com/dz-study/p/12382837.html


posted on 2021-10-15 10:32 小王 阅读(2576) 评论(0)  编辑 收藏 引用 所属分类: DBQt

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理