- 以QT 5.14.1和Mysql 8.0.29为例
QT 下载链接:Index of /archive/qt 选择自己需要的版本下载。
Mysql:下载链接:MySQL :: Download MySQL Community Server,同样选择需要的版本下载 - QT安装时选择的位数最好和Mysq的位数一致。
查看QT编译器版本:
这里选择的是64位的编译器;
或者是安装时选择像我这样选择:(32和64都选)
注意:::一定要选Sourcs,别的除了图上的都可以不选,有需要再选,本次只用到这些
- 如果已经安装了Sourcs,QT安装目录中会有如图Src文件夹:

如果没有Src,可以单独进入QT下载网站下载,在对应版本的single目录下:
例如:qt-everywhere-src-xxx.zip; 自己建立Src文件夹,全部解压到其中。
解压后如图:
- 查看Mysql位数:
mysql -h localhost -u root -p; #登录mysql \s; #查看版本,位数;例如:

图中是64位 -
用QT打开D:\qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
如图:
打开后编辑mysql.pro:
更改文本内容为: 一定要把QMAKE_USE += mysql用#注释掉
添加了三处内容:
第一处:INCLUDEPATH 后面是mysql的include文件夹位置
第二处:LIBS是lib文件夹中libmysql.lib的位置
第三处:可以直接复制
第一二处要按照自己的Mysql安装位置修改
修改完成后选择对应位数的编译器,这里选择的是64位的:

点击构建:左下角小锤子

构建完成后D:\qt5.14.1\5.14.1\Src\qtbase\src\plugins\sqldrivers\mysql里面会多出一个lib文件夹,里面有构建完的文件:

将三个文件都复制到 D:\qt5.14.1\5.14.1\mingw73_64\plugins\sqldrivers 绿色标记是构建时选择的编译器,如图是复制完的:
然后,如图示把Mysql目录中的两个文件复制

粘贴到D:\qt5.14.1\5.14.1\mingw73_64\bin中:

最后下载对应版本的Mysql Connector/C++
地址:MySQL :: Download Connector/C++
如图:
解压后,进入lib64文件夹,只需要复制其中两个文件libssl-1_1-x64.dll和libcrypto-1_1-x64.dll
将其复制到C:\windows\system32
大功告成!!!
测试代码:(建立widget的空窗口工程)
#include "widget.h"
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//打印当前系统支持的数据库驱动--即支持哪些数据库产品
qDebug()<< QSqlDatabase::drivers();
//操作数据库
//告知当前程序访问哪个类型的数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost"); //设置主机地址
db.setUserName("root"); //设置用户名
db.setPassword("passwd"); //设置连接密码
db.setPort(3306); //设置连接端口
db.setDatabaseName("test");
//打开数据库
if(!db.open()) //打开数据库失败提醒用户,使用QMessageBox;
{
QMessageBox::warning(this,"xxx",db.lastError().text());
}
else //成功
{
QMessageBox::warning(this,"+++","连接成功");
}
}
Widget::~Widget()
{
}
成功结果:
应用程序输出中应有:QMYSQL![]()
窗口会弹出:
参考文章:(11条消息) 解决问题 Qt + MySql:"QSqlDatabase: QMYSQL driver not loaded"_sigmarising的博客-优快云博客
QMYSQL driver not loaded错误解决方案 - 灰信网(软件开发博客聚合) (freesion.com)
446





