摘要
首先需要感谢原作者的教程:qt5.12编译Mysql5.7
之前一直用python连接Mysql数据库没有任何问题,这次切换使用c++的qt,使用Qt5.12连接远程Linux服务器上的Mysql数据库一直提示“Qt Mysql中无法加载驱动问题”,百度上折腾了足足一整天,主要找到了两种解决方案:
- 从Mysql上将驱动文件复制到Qt的bin目录下
- 下载Mysql和Qt源码,通过Qt编译出Mysql的驱动文件,再导入到Qt的mingw73_64\plugins\sqldrivers目录下
首先尝试了无数遍的方案1都宣告失败。后通过方案2亲测成功
方案2主要分为以下几步测试通过。
一、安装Qt5.12
由于已经安装的Qt版本没有选择源码安装,为了保险起见,还是先卸载再重装,但系统自带的卸载往往不能卸载干净,会留有注册表等东西,会造成各种意想不到的问题,
1 大家可以用这个软件卸载干净 密码:b5fu
2 Qt5.12.9安装包-清华源
安装Qt的过程中要选择源码安装,勾选上 Sources ,因为Mysql8.0都是64位版本,所以选择勾选 64位编译器 。
二、打开Qt12.9的Mysql源码项目
我的Qt程序是默认安装,因此Mysql源码项目在 C:\Qt\Qt5.12.9\5.12.9\Src\qtbase\src\plugins\sqldrivers\mysql ,然后打开项目文件 mysql.pro
打开后如下图所示,其中红色框圈起来的是已经修改过的部分,QMAKE_USE += mysql 要使用 # 号注释
下面的三行圈出来的是需要添加的代码:路径是Mysql8.0的解压路径
Mysql8.0源码下载地址
win32:LIBS += -LF:/mysql-8.0.25-winx64/lib/ -llibmysql
INCLUDEPATH += F:/mysql-8.0.25-winx64/include
DEPENDPATH += F:/mysql-8.0.25-winx64/include
最后编译源码。
三、导入编译后的Mysql驱动文件
Qt的Mysql项目编译成功后会在Qt所在安装盘符的主目录生成一个 plugins 文件夹,如下图所示。
然后将qsqlmysql.dll和qsqlmysqld.dll拷贝到Qt的安装目录下C:\Qt\Qt5.12.9\5.12.9\mingw73_64\plugins\sqldrivers
四、拷贝动态库到指定的目录
动态库下载地址:https://wwr.lanzoui.com/iuaACpro7dg
密码:55gb
将libmysql.dll下载后复制到Qt的安装目录中
五、测试
六、所需下载软件汇总
1 卸载软件 密码:b5fu
2 Qt5.12.9安装包-清华源
3 Mysql8.0源码下载地址
4 动态库下载地址 密码:55gb
5 编译后的驱动文件 密码:fgov