Qt6 Cmake编译MySql驱动、连接Mysql数据库教程

Qt6 Cmake编译MySql驱动、连接Mysql数据库教程

众所周知,自Qt5.7以后,Qt官方已经不再提供MySQL驱动,而是转向了MariaDB。但是,对于一些项目,可能还是需要使用MySQL,这时候就需要自己编译MySQL驱动了。

当使用Cmake出现如下报错:QSqldatabase: No Such file and directory。这种情况其实是跟CmakeList里面里面添加SQL模块有关,需要在CmakeList里面添加SQL模块。

在Cmake中添加SQL模块

首先打开CmakeList.txt文件,添加如下代码:

find_package(Qt NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Sql)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql)

接下来在CmakeList.txt文件中添加如下代码:

注意${PROJECT_NAME}是您的项目名称,请将其替换为您的项目名称。

target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Sql)

编译MySQL驱动

在完成上述步骤后,如果你没有MYSQL驱动的话,你在编译的时候会在应用程序输出那里看到:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: xxxx

前提说明:我的MYSQL服务端是部署于服务器上的,但是对于本地开发时,本地是MYSQL服务端是否适用于本教程,我没有测试过,但是我认为应该是可以的。

下载MySQL驱动

进入到MySQL官网下载MySQL驱动,进入到MySQL官网下载页面,找到MySQL Community Server,点击Archives.

1716132307703

找到自己的服务端版本,我使用的是8.0.35版本

1716132349164

找到ZIP Archive,点击下载

1716132451724

下载完成后,解压到一个文件夹下,并记住这个文件夹的路径。

编译MySQL驱动

解压完成之后呢,我们找到Qt的安装目录,使用maintenance tool打开,添加删除组件,下载sources源码。

1716133095626

记下来在Qt的安装目录下找到源码(src)文件夹,在Qt creator中打开项目,找到src->qtbase->src->plugins->sqldrivers的cmakelist.txt文件,打开。

在Cmake Modules中找到.cmake.conf文件,打开,修改

1716133532668

set(feature_sql_mysql ON)
set(MYSQL_INCLUDE_DIR "路径/include")
set(MYSQL_LIBRARY "路径/lib/libmysql/lib")

注意修改为你自己的路径。设置完成之后,点击左下角小锤子,等待进度条跑完。

接着在Src->qtbase->src->plugins->build-xxx->plugins->sqldrivers中找到.debug和.dll文件。

1716133894752

接下来把这两个文件粘贴在mingw_64->plugins->sqldrivers中。

1716134195444

之后再把下载的mysql.dll和lib放在mingw_64->bin中。

1716134373910
1716134411286

高版本mysql的依赖问题

如果你的mysql版本比较高,可能会出现依赖问题,可以使用dependencies,并去网上搜索libmysql.dll的依赖库,然后把依赖库放在mingw_64->bin中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

美丽新科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值