Qt6.4.2连接Mysql

qt6没有mysql驱动,需要自己编译,那是相当之坑啊。

qt6的mysql驱动编译源码中,没有pro,只能用cmake进行编译

但是用了cmake-gui.exe使用了mingw和vs环境进行编译都编译失败

后来坑了一整天,终于搞定了,现分享给大家。

1. 下载qt6.4.2已经编译好的lib,并复制到相应位置

我用的是mysql8.0

使用这个链接下载(如果不是6.4.2,你可以自己在github上搜索相应的版本进行下载)

Release QMYSQL driver 6.4.2 · thecodemonkey86/qt_mysql_driver · GitHub

下载完解压缩后:

libcrypto-1_1-x64.dll,libmysql.dll,libssl-1_1-x64.dll这3个文件复制到D:\Qt\6.4.2\mingw_64\bin文件夹中

再将解压缩后中的sqldrivers的两个mysql驱动文件复制到D:\Qt\6.4.2\mingw_64\plugins\sqldrivers

2. 代码调整

在你自己工程源码的cmakelists中

调整这行find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql),其实就是加了Sql这三个字符

加入另一行target_link_libraries(test_mysql PRIVATE Qt${QT_VERSION_MAJOR}::Sql)

然后在自己工程的cpp文件中加入

#include<QSqlDatabase>
#include<QDebug>

void MainWindow::on_pushButton_clicked()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");  //连接本地主机
    db.setPort(3306);
    db.setDatabaseName("db_name");
    db.setUserName("root");
    db.setPassword("root");
    bool ok = db.open();
    if (ok){
         qDebug() << "link success";
    }
    else {
         qDebug() <<  "link failed";
    }
}

测试输出link success,连接成功。

坑死我也,,,希望大家在这个坑点节省时间

评论 32
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值