前言

  之前特定的mysql版本msvc版本已经调通了,但是为了更好的跨平台,所以选择用mingw32版本,于是需要编译mysql驱动的mingw32版本的驱动库,以便提供给qt连接mysql使用。

 

编译环境

Qt5.9.3 mingw32

  安装得时候记得要勾选上源码

mysql-installer-community-8.0.16.0

  

下载数据库

 

编译mysql驱动库(Qt5.9.3+mysql8.0.16)

步骤一:安装Qt5.9.3勾选mingw32版本。

  
  其他过程略。

步骤二:下载数据库32位驱动运行程序并解压

  下载数据库运行包文件。(注意:这里要注意跟目标机器安装的版本要一致)。
  下载地址:https://downloads.mysql.com/archives/c-c
  
  

步骤三:打开qt中自带的mysql源码工程

  
  使用QtCreator打开:
  
  注意工程的编译套件。(注意:shadow build在这里不管作用,最后是生成到根目录上去了,跟pro包含的pri配置有关)
   
  
  

步骤四:qmake并且build构建

  构建成功:
  
  这里生成到磁盘根目录下去了:
  
  

步骤五:替换插件的mysql库

  

步骤六:将数据库的libmysql.dll拷贝到bin目录

  这个文件是运行库,也是需要自动手动额外copy和打包时额外拷贝的,具体看 “入坑一”。
  需要将下载下来mysql的lib下的libmysql.dll拷贝到qt的gcc的bin目录下,而且打包软件的时候也要带上。
  
  如果是打包,则windeployqt不会主动拷贝,也需要手动复制过去:
  

步骤七:编译应用连接测试

  编译数据库的工程:
  
  Ok了,提示不再是缺少驱动了。
  下面配置好数据库,再尝试:
  

步骤八:配置数据库账号允许远程操作

  这是因为账号不被允许远程登录,所以需要修改数据库用户的配置,让其允许远程登录。
  修改用户被允许远程登录,先使用mysql控制端输入密码登录,然后操作:

use mysql;
select host,host from user;
update user set host = ‘%’ where user = ‘root’;
select host,host from user;

  这时候,还是不行,需要强行刷新以下

flush privileges;

  

  

  然后成功:
  
  至此,Qt5.9.3 mingw32 + mysql8.0.16数据库完成。

步骤九:数据库的远程操作工具连接

  使用远程工具测试,发现出错:
  

  这是因为8.0之后mysql更改了密码的加密规则,目前的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以需要修改用户的加密方式,将其改回旧加密验证方式。
  先登录mysql命令行,执行以下,主要是youPassword要替换为你使用远程登录的账户密码:

alter user 'root'@'%' identified by 'youPassword' password expire never;
alter user root identified with mysql_native_password by 'youPassword';
flush privileges;

   
  

 

入坑

入坑一:开始连通后打包后不行了,回头也不行了

问题

  开始连通后打包后不行了,回头也不行了

原因

  需要使用到libmysql.dll运行库

解决

  需要将下载下来mysql的lib下的libmysql.dll拷贝到qt的gcc的bin目录下,而且打包软件的时候也要带上。
  

  如果是打包,则windeployqt不会主动拷贝,也需要手动复制过去:
  

Qt+MySql开发笔记:Qt5.9.3的mingw32版本编译MySql8版本驱动并Demo连接数据库测试的更多相关文章

  1. Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试

    前言   mysql驱动版本msvc2015x32版本调好, mysql的mingw32版本的驱动上一个版本编译并测试好,有些三方库最低支持vs2017,所以只能使用msvc2017x64,基于Qt5 ...

  2. Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示

    前言   在ubuntu上实现MPlayer播放器播放音乐.   Demo                Mplayer   MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布.此款软件 ...

  3. Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121572767红胖子(红模仿)的博文大全:开发技术集合( ...

  4. Qt+ECharts开发笔记(三):ECharts的柱状图介绍、基础使用和Qt封装Demo

    前言   上一篇成功是EChart随着Qt窗口变化而变化,本篇将开始正式介绍柱状图介绍.基础使用,并将其封装一层Qt.  本篇的demo实现了隐藏js代码的方式,实现了一个条形图的基本交互方式,即Qt ...

  5. Qt+ECharts开发笔记(二):Qt窗口动态调整大小,使ECharts跟随Qt窗口大小变换而变换大小

    前言   上一篇将ECharts嵌入Qt中,在开始ECharts使用之前,还有一个很重要的功能,就是在窗口变换大小的时候,ECharts的图表尺寸也要跟随Qt窗口变换大小而变换大小.   Demo演示 ...

  6. Qt+ECharts开发笔记(四):ECharts的饼图介绍、基础使用和Qt封装百分比图Demo

    前言   前一篇介绍了横向柱图图.本篇将介绍基础饼图使用,并将其封装一层Qt.  本篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口.   Demo演示 ...

  7. Qt+ECharts开发笔记(五):ECharts的动态排序柱状图介绍、基础使用和Qt封装Demo

    前言   上一篇的demo使用隐藏js代码的方式,实现了一个饼图的基本交互方式,并预留了Qt模块对外的基础接口.  本篇的demo实现了自动排序的柱状图,实现了一个自动排序柱状图的基本交互方式,即Qt ...

  8. openwrt开发笔记一:源码下载与编译

    1.1 环境要求 编译系统:Linux发行版(本文使用Ubuntu) 编译一个可以安装的OpenWrt固件镜像文件(大约8MB大小的),你需要: 一个纯净的OpenWrt编译系统大约需要200MB的空 ...

  9. 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...

  10. QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图

    前言   QCustomPlot开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,过目 ...

随机推荐

  1. [转帖]Innodb存储引擎-备份和恢复(分类、冷备、热备、逻辑备份、二进制日志备份和恢复、快照备份、复制)

    文章目录 备份和恢复 分类 冷备 热备 逻辑备份 mysqldump SELECT...INTO OUTFILE 恢复 二进制日志备份与恢复 快照备份(完全备份) 复制 快照+复制的备份架构 备份和恢 ...

  2. CPU实际频率查看

    cat /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq

  3. [转帖]配置logback上报日志到Skywalking

    https://zhuanlan.zhihu.com/p/506119895 配置logback上报日志到Skywalking 配置logback上报日志到skywalking需要引入toolkit依 ...

  4. K8S多节点情况下使用nginx负载ingress或者是istio域名服务的处理

    K8S多节点情况下使用nginx负载ingress或者是istio域名服务的处理 背景 公司内部有一个自建的K8S测试集群.同事这边使用istio或者是ingress发布了一个域名服务. 公司这边的D ...

  5. ToneGenerator Init failed Crash 崩溃

    需求需要在扫码时产生一个短促的提示音, 搜了下像这样实现.测试时发现多次扫码后,会触发程序崩溃问题. 异常如下 java.lang.RuntimeException: Init failed at a ...

  6. 【分享笔记】druid存储系统-思维导图

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu 公众号:一本正经的瞎扯 源于:<Druid实时大数据分析原理与实践>这本书的阅读笔记 ...

  7. NetCore高级系列文章03---中间件

    .net web 一路发展过来,经历了 .net webfrom. .net Mvc ..net core不论哪种架构,都会对用户的请求到达服务器后经历一系列类似于管道的处理.在.net webfro ...

  8. VS2013未能正确加载microsoft.visualstudio.editor.implementation.editorpackage

    在用VS2013做项目,但是特别不顺利,这不,VS2013突然罢工了,连解决方案都打不开了,会出现如下的错误: 试了网上的各种解决方案,总算找到一个适合自己的,具体方法如下: 1.打开VS2013的& ...

  9. 栈:数据结构中的后进先出(LIFO)容器

    栈是一种基本的数据结构,广泛应用于计算机科学和编程中,用于管理数据的存储和访问.栈遵循后进先出(Last In, First Out,LIFO)原则,即最后放入栈的元素首先被取出.这种数据结构模拟了物 ...

  10. TienChin 渠道管理-配置校验失败信息

    新建 ValidationMessages.properties: channel.name.notnull=渠道名称不能为空 channel.type.notnull=渠道类型不能为空 channe ...