环境介绍
系统:Win10 64位
Qt版本:Qt5.12.7
编译器:Qt5.12.7 MinGW 64-bit
待搭建数据库:MySql-8.0.19
-
特殊说明
一般情况下MySql 的库(libmysql.dll)有了,驱动(qsqlmysql.dll 和 qsqlmysqld.dll)也有了,将他们拷贝到程序所在目录,就能正常运行。
但对于高版本的 MySql 来说不行,因为 libmysql.dll 还依赖于其他的库。所以还需要将 libmysql.dll 依赖的其他库拷贝至Qt安装路径下。此步骤为重点
-
准备工具
1.在安装 Qt 时,要一并安装源码(勾选“Sources”组件)
2.安装MySqlMySql-8.0.19,安装教程:https://blog.csdn.net/mokemg/article/details/105836663
此教程MySql的安装路径为:C:\Program Files\MySQL\MySQL Server 8.0
3.查找依赖的库工具:Dependencies
工具下载地址:https://github.com/lucasg/Dependencies/releases
如果此工具下载后无法使用,需要配置其环境,教程:https://blog.csdn.net/libaineu2004/article/details/89670726
-
编译MySql驱动
步骤1.进入 Qt 的 MySql 数据库驱动源码目录,安装Qt时如果更改了安装位置自己找到安装路径即可,
(例如我的安装路径:D:\Qt\5.12.7\Src\qtbase\src\plugins\sqldrivers\mysql)
步骤2.双击上述 MySql 数据库驱动源码目录mysql.pro,使用Qt Creator打开
步骤3.双击“mysql.pro”后,进行右侧更改
修改详细说明:
(1)注释掉
(2)配置MySql库,INCLUDEPATH及LIBS地址为准备工具中MySql安装路径,根据自己情况修改
(3)设置输出路径,编译之后方便找到生成的库文件(此处设置的路径不影响编译生成的库内容,可自行修改,编译后就可在该路径下找到生成的MySql驱动文件)
步骤4.mysql.pro文件修改完后执行qmake(构建->执行qmake)
步骤5.构建->构建项目(也可按左下角的小锤子)
步骤6.如果编译后出现下图错误,可按步骤7操作解决,如果没遇到则可直接跳到步骤8
步骤7.去项目构建路径找到.moc文件夹->release文件夹-> .moc文件复制到工程目录下即可解决
.moc文件位置
拷贝后放置的文件
步骤8.在D:/mysql找到已经编译完成的MySql驱动备用
-
将编译后的MySql驱动放到Qt安装文件中
步骤.拷贝上述步骤8编译后的MySql驱动到Qt安装路径中
-
将MySql动态库(libmysql.dll)复制到Qt安装文件中
步骤1.按下图路径找到MySql 的库(libmysql.dll)
路径:C:\Program Files\MySQL\MySQL Server 8.0\lib(此路径为我安装MySql路径)
步骤2.将上一步中libmysql.dll文件拷贝到Qt安装路径中
拷贝至路径:D:\Qt\5.12.7\mingw73_64\bin
-
将MySql动态库(libmysql.dll)依赖的其他库复制到Qt安装文件中
步骤1.打开准备工具中下载好的查找依赖的库工具:Dependencies,双击执行“DependenciesGui.exe”
步骤2.打开“DependenciesGui.exe”后,File->Open
步骤3.打开MySql安装路径下的“libmysql.dll”,查找该动态库所依赖的其他库
如下图所示缺少libssl-1_1-x64.dll和libcrypto-1_1-x64.dll两个库
步骤4.用“Everything”工具查找上一步两个所需库,一般所需库文件在MySql安装路径下的bin文件夹下即可找到
Everything下载地址:https://www.voidtools.com/zh-cn/
Everything查找截图
步骤5.将上一步中查找到libmysql.dll所依赖的其他库拷贝到Qt安装路径中
拷贝至路径:D:\Qt\5.12.7\mingw73_64\bin
步骤6.此时Qt5.12.7的MySql8.0环境已经搭建完成
-
进行验证
1.先添加一个名称为“mydata”数据库
开始->找到上述安装的MySQL8.0 Command Line Client后打开
输入配置时设置的密码后
输入命令添加新建数据库,输入命令(红色):"create database mydata;" 后回车,注意最后的分号
通过输入命令查看已经添加的数据库,输入命令(红色):"show databases;" 后回车,注意最后的分号
步骤2.Qt Creator新建工程进行连接MySql数据库
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QtDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.***.***");//如果是本机可用localhost
db.setDatabaseName("mydata");
db.setUserName("root");
db.setPassword("password");//此位置密码为安装MySql设置的数据库密码
db.setPort(3306);
if (db.open()) {
qDebug() << "Open successfully.";
db.close();
} else {
qDebug() << "Open failed.";
}
return a.exec();
}
-
测试结果