QT6使用Mysql全流程
在网上找了很多教程,有很多种做法,不确定是不是有些旧版本的做法,对QT6来做很多问题,特别多的教程是打开mysql文件夹下的pro,我都没找到,还自己建了一个,踩了一堆坑,今天终于弄完,做个流程记录一下,注意:此流程中使用的qt6.8.2,mysql使用8,其它版本不说了,因为qt对应mysql版本也有说法的,像我试过用mysql5.1就连不上,说是太旧。
一、下载mysql,此链接可以下载最新版本,或者进archives下载自己要的版本,此处安装mysql的只为了得到它的include和lib两个文件夹(本地有就不用安装,而且从其它电脑复制来的也是可以的),正常安装后在mysql的根目录就有这两个文件夹了,最好是复制出来另外找个地方放(路径必须是英文而且不能有空格)。
二、找到QT如下路径C:\Qt\6.8.2\Src\qtbase\src\plugins\sqldrivers(如果没有此路径,那就是安装时没有勾选source,运行Qt根目录下的MaintenanceTool.exe程序,可以重新勾选安装),打开QT Creator->打开项目->选中上面路径下的CMakeLists.txt文件打开,然后选择kit(一般是要用mysql项目是使用哪个kit我们对应勾选就行)。打开后是这样的:
双击.cmake.conf,添加上代码:
SET(FEATURE_sql_mysql ON)
SET(MySQL_INCLUDE_DIR "D:/MySQL8/include")
SET(MySQL_LIBRARY "D:/MySQL8/lib/libmysql.lib")
后面两个就是在第一点得到的两个文件夹路径。
三、右击项目->重新构建,就可以生成mysql驱动了,如下:
注意:我们需要debug和release都生成一遍,上图是debug,而且mingw和msvc也不一样,需要的都得在左下角切换,并生成。
四、最后就是怎么用这些文件了,比较简单就是找位置放好:
第一点中lib文件夹下libmysql.dll和libmysql.lib两个文件都复制一份到:
C:\Qt\6.8.2\msvc2022_64\bin和C:\Qt\6.8.2\mingw_64\bin
第三点中得到的qsqlmysql.dll(release)和qsqlmysqld.dll(debug)按mingw和msvc区分复制到对应的路径:
C:\Qt\6.8.2\mingw_64\plugins\sqldrivers和C:\Qt\6.8.2\msvc2022_64\plugins\sqldrivers
至此,大功告成,可以正常使用mysql了,如果此过程中有踩到坑,可以看下我前面的文章,生成这mysql驱动,基本每一步我都遇到问题。