Qt Creator 6.1.0连接MySql8.0.23配置

Qt Creator 6.1.0连接MySql8.0.23配置

  • 前言
  • 一、问题描述与分析
  • 二、解决方案
    • 1.前期准备
      • 1.1 找到libmysql.dll和libmysql.lib
      • 1.2 找到qsqlmysql.dll和qsqlmysql.debug
    • 2.编译qsqlmysql.dll和qsqmysql.debug
    • 3、测试
  • 总结
  • 补充
  • 参考文章
    • 1 [Qt连接MySql驱动加载失败问题解决方法](https://blog.csdn.net/qq_38344751/article/details/105387341)
    • 2 [本文编译好的qsqlmysql.dll和qsqlmysql.debug文件](https://download.csdn.net/download/weixin_42043127/16281065?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161724089516780266230353%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161724089516780266230353&biz_id=1&utm_medium=distribute.pc_search_result.none-task-download-2~all~first_rank_v2~rank_v29-1-16281065.first_rank_v2_pc_rank_v29&utm_term=qt6.1.0%20%E8%BF%9E%E6%8E%A5mysql&spm=1018.2226.3001.4187)
  • 编后语


前言

随着qt团队近几年的大力推广,qt的版本更下也越来越快了。当然对于长期使用mysql的使用者,会觉得qt5之后,对于mysql的驱动配置越来越不友好了。本文以qt6.1.0版本连接mysql8.0.23做个简单连接,操作系统是windows10,以期为大家提供一个参考。


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题描述与分析

qt6在初次加载mysql时,常见的QMYSQL driver not loaded问题深深的折磨着各位Mysql User。这个问题的本质在于qt6找不到mysql的相关的驱动文件,如:libmysql.dll、libmysql.lib以及qsqlmysql.dll、qsqlmysql.debug等。所以,我们只需要让qt找到这四个文件就可以解决问了。至于libmysqld.dll和libmysqld.dll这两个文件,在mysql8.0到来的时候已经没有了 ,所以不必纠结了。

二、解决方案

1.前期准备

1.1 找到libmysql.dll和libmysql.lib

下载并配置好mysql 8.0.23后,首先在其安装目录下可以找到libmysql.dll、libmysql.lib这两个文件,复制到qt6的目录下面。

Qt Creator 6.1.0连接MySql8.0.23配置_第1张图片
Qt Creator 6.1.0连接MySql8.0.23配置_第2张图片

1.2 找到qsqlmysql.dll和qsqlmysql.debug

这两个文件需要用qt源码自行编译出来,并复制到qt的sql驱动文件夹里面 (C:\Qt\6.1.0\mingw81_64\plugins\sqldrivers)。当然你在这个文件夹找到了这两个文件,那就不用看后面的内容了,可以直接使用mysql了,如果还有无法加载驱动的问题,就需要从其他方面找原因了,比如:环境变量问题。
这一步要求安装qt6时,勾选Sources选项,如果没有勾选的话,就运行qt6安装目录下MaintenanceTool.exe添加上,这里面是qt6.1.0的源码。除此之外我们还需要下载一个qt6.0.3的源码qt-everywhere-src-6.0.3.zip,准备好这两件事后,我们开始编译。
Qt Creator 6.1.0连接MySql8.0.23配置_第3张图片

2.编译qsqlmysql.dll和qsqmysql.debug

我们同时打开qt6.1.0的sql驱动源码文件路径
C:\Qt\6.1.0\Src\qtbase\src\plugins\sqldrivers\mysql
以及qt-everywhere-src-6.0.3.zip解压出来的源码路径
C:\Users\Administrator\Downloads\qt-everywhere-src-6.0.3\sqldrivers\mysql
不难发现qt6.1.0的源码里面缺少*.pro文件,不能直接编译,所以我们借用qt6.0.3的pro文件来编译,操作就是将qt6.1.0这个路径下的所有文件复制到qt6.0.3的mysql文件夹里面,然后用qt打开pro文件。Qt Creator 6.1.0连接MySql8.0.23配置_第4张图片Qt Creator 6.1.0连接MySql8.0.23配置_第5张图片
然后修改qsqldriverbase.pri文件,这里如果不修改,就会有qtsqldrivers-config.pri报错。
Qt Creator 6.1.0连接MySql8.0.23配置_第6张图片
一切顺利的话,现在可以直接点构建了,构建完成后,我们回到myDLL文件夹把新生成的qsqlmysql.dll和qsqlmysql.debug文件复制粘贴到qt的驱动文件夹(C:\Qt\6.1.0\mingw81_64\plugins\sqldrivers)
Qt Creator 6.1.0连接MySql8.0.23配置_第7张图片

3、测试

新建一个qt项目,复制下面的代码跑一下,就可以看到qt6现在能识别的sql驱动了。

#include 
#include 
#include 
#include 
#include 

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug()<<"view:";
    QStringList driversList = QSqlDatabase::drivers();
    foreach(QString driver,driversList)
    {
        qDebug()<<driver;//输出qt6支持的数据库
    }
    return a.exec();

}

Qt Creator 6.1.0连接MySql8.0.23配置_第8张图片
其中QMYSQL赫然在目。说明qt可以成功识别并加载mysql了。

总结

让qt6识别并加载mysql,就像教一个孩子认识mysql一样,我们首先要清楚需要给qt6提供什么东西,才能让qt6认识到mysql驱动。然后正确引导qt6自己去编译出符合自己版本的qsqlmysql.dll和qsqlmysql.debug。

补充

在编译的最后一步,可能会遇到qmake.conf 路径找不到的错误信息,这个时候需要配置环境变量,重启电脑后,再编译。
可以参考这个文章:https://blog.csdn.net/cqltbe131421/article/details/53420997

参考文章

1 Qt连接MySql驱动加载失败问题解决方法

2 本文编译好的qsqlmysql.dll和qsqlmysql.debug文件

编后语

你可能感兴趣的:(qt5,C++,mysql,c++,windows)