IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Qt 6.2.2连接MySQL8.0.28且无需修改MySQL密码策略的方法 -> 正文阅读

[大数据]Qt 6.2.2连接MySQL8.0.28且无需修改MySQL密码策略的方法

前言

最近需要使用Qt连接MySQL,毫无疑问涉及到了编译MySQL驱动,以及QSqlDatabase: QMYSQL driver not loaded的问题。
网络上其他文章分为几大类:

  • 1、编译好MySQL驱动,莫名其妙就使用成功了。
    这种情况是因为MySQL使用的是5.x。
  • 2、使用MySQL connector c 6.11编译MySQL驱动。
    这种方法编译出来的驱动是5.x的,因为MySQL connector c最后版本是2017年,可以链接,但是需要修改MySQL 8.0的密码策略。
  • 3、使用MySQL 8.0自带的头文和库进行编译。
    无法链接。
    上述几大类都有一个共同操作,就是把libmysql.dll复制到Qt的bin目录下。
    但是!上面这些方法要么无法连接,要么需要修改MySQL密码策略。通常我们没有权限去侵入式修改MySQL配置。

解决

本文默认用户安装完毕MySQL8.0,运行环境Windows10,Qt版本6.2.2,使用Cmake+Mingw编译x86_64版本

1、编译MySQL驱动器

首先配置Cmake
在这里插入图片描述
这里要注意,CMAKE_MAKE_PROGRAM一定要是64位版本,且必须是Qt自带的Mingw,Cmake Generator为CodeBlocks - MinGW Makefiles,MySQL要指定自己的MySQL安装位置里的include和lib。
而后,执行generate。
然后是编译,这里不能直接去make命令,必须使用QT自带的mingw,存放在Qt安装目录的Tools内,使用绝对路径去使用这个make:

E:\Qt\Tools\mingw900_64\bin\mingw32-make.exe

在这里插入图片描述
编译成功后,在插件文件夹内会看到qsqlmysql.dll和qsqlmysql.debug
在这里插入图片描述

2、配置

这是重点,其他文章只说了将libmysql.dll复制到Qt安装目录,这是不行的。会直接无法加载驱动,5.x版本的驱动(使用MySQL connector c 6.11编译驱动)会直接报错:

Authentication plugin 'caching_sha2_password' cannot be loaded: ????????????顣\r\nQMYSQL: Unable to connect

而遇到这种问题某些文章就告诉说去MySQL里修改密码策略,我就问你,公司的服务器你想进去修改东西???分分钟开除你。咋想的,自己配置不对就去侵入式修改别人的东西而不从自身找问题。

然后大家就开始疯狂找文章,发现每一篇文章都大同小异。

其实正确的方法非常简单。

终极大法

将mysql的bin目录内的libcrypto-1_1-x64.dll、libprotobuf.dll、libssl-1_1-x64.dll连同lib内的libmysql.dll一同复制到Qt的bin目录下:E:\Qt\6.2.2\mingw_64\bin或者是自己开发的程序的运行目录。
在这里插入图片描述
即可。这样也不需要修改密码策略了。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:27:35  更:2022-03-16 22:31:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:35:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码