QT5.12.0使用mysql8.0

在QT上连接mysql数据库,把我折腾了快一天了,各种连接不上,尝试网上博客各种办法,基本都没能解决问题,最后,还是成功的连上了,特意写此博客记录走过的各种坑。
用QT连接Mysql的时候,报错显示驱动没加载好,报错信息如下:
在这里插入图片描述
那么就手动加载驱动,查看报错的具体信息
在这里插入图片描述
这是QT找不到指定的mysql驱动导致的,需要到mysql server8.0下的lib将libmysql.dll,libmysql.lib复制到QT编译器的bin目录下,例如我的是:
D:\Qt\5.10.0\mingw53_32\bin

重新连接数据库还是出现问题,如下:
在这里插入图片描述
出现这问题原因是我安装的mysql是64位的,故libmysql.dll和libmysql.lib都是64位的,然而从官网上下载的QT的只有32位的,因此不能用,解决办法的主要的思路有以下两种:
1、下载32位的libmysql.dll和libmtsql.lib,然后按照上面的步骤复制到指定的目录
2、重新编译QT中mysql的驱动文件qsalmysql.dll成64位

第二种方法我也尝试了,但是出现各种问题,没解决掉,就转向了第一种解决方案,也是最简单的一种方案。

MYSQL安装的connector是C++8.0版本,该版本好像只有64位的,没有32位,32位的只有C语言版本的,可以用mysql installer进行下载,步骤如下:
1、卸载MYSQL Connector8…0/C++
QT5.12.0使用mysql8.0_第1张图片
选中MYSQL Connector/C++,点击右边的Remove进行删除,卸载完毕之后,点击ADD
QT5.12.0使用mysql8.0_第2张图片
选中Connector/C-x86,点击右方向的箭头添加到要安装的列表,然后Excute执行安装,然后到安装的目录下找到libmysql.dll,libmysql.lib,复制到QT的编译器的bin目录
QT5.12.0使用mysql8.0_第3张图片
重新加载驱动,成功加载,如下:
在这里插入图片描述
这下可以连接数据库了,但是发现连接数据库的时候报错,出错原因是在安装MYSQL Server的时候选择MYSQL8.0的一种新的认证方式caching_sha2_password的认证方式,解决办法是重新配置MYSQL Server选择另外一种认证方式,成功可以连接数据库。
在这里插入图片描述

总结

至此QT5.12.0下配置MYSQL成功完成,反过来,其实也不麻烦,关键是在这一过程中走过很多弯路,通过这一次教训,下次在遇到问题的时候,不要看到一个解决方案就拿着去试,先搜集有几种解决方案,然后再选择一种最佳方案去解决,不然走了很多弯路,浪费精力。

你可能感兴趣的:(QT)