QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案

QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案

环境

VS2019
mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)
QT 5.15.2 及其源代码

报错

在这里插入图片描述

解决方案

1.检查是否有驱动qsqlmysql.dll,qsqlmysqld.dll

QT安装路径,不同编译器路径下的插件目录里,查找是否有MySQL的库(C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers),我这里查找,确实没有,因此需要自行编译。
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第1张图片

2.查看网上的驱动编译解决方案,大部分大佬们都采用如下方式

找到QT的源码目录下,关于mysql的项目目录,通过QT打开mysql.pro文件的方式打开项目:
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第2张图片
修改mysql.pro:
1)注释掉QMAKE_USE += mysql,因为会提示找不到mysql;
2)添加MySQL的include目录,及其库目录;
3)设置目标生成文件的存储路径,方便自己查找。PS:我这边开始没设置路径,默认存储在了C:\plugins\sqldrivers目录下。
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第3张图片
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第4张图片
修改qsqldriverbase.pri文件:
1)注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri) ,因为找不到改文件;
2)添加 include(./configure.pri),PS:我这个版本里是这个文件configure.pri。
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第5张图片
构建项目mysql:
前面指定的输出目录下,生成了驱动qsqlmysql.dll,qsqlmysql.lib。
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第6张图片

3. 将驱动放置相关目录下,使其生效

1)将生成的.dll文件复制到C:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers目录下:
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第7张图片
2)将MySQL的库文件libmysql.dll复制到QT对应编译器的bin目录下,C:\Qt\5.15.2\msvc2019_64\bin:
QSqlDatabase连接MySQL数据库提示driver not loaded的解决方案_第8张图片
至此,问题得以解决!

补充说明

编译器使用msvc,则用msvc生成驱动;编译器使用minGW,则使用该编译器生成驱动。

你可能感兴趣的:(IT技术,数据库,mysql,qt)