Qt 5.15.2 中编译MySQL驱动,解决QSqlDatabase: QMYSQL driver not loaded问题

在Qt中使用MySQL的时候,出现

 ”QSqlDatabase: QMYSQL driver not loaded”

报错,查看一下原来是现版本没有内置MySQL驱动,于是乎想办法来解决这个问题。

下面将详细介绍一下如何进行MySQL驱动编译以及简单的MYSQL数据库连接示例。

1、查看Qt中源码是否具备mysql的源码

查看该路径,如有以下图片内容文件则证明具备该驱动编译源码,如没有可通过维护工具进行源码下载。

D:\mysoft\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql

2、打开mysql.pro文件,编译器可根据需要选择,当前案例中我选择的编译器为MinGW64

3、下载mysql-8.0.35-winx64文件,目的是为了拿到该文件夹中的libmysql库文件

3.1 MySQL Community Downloads 进入该网站进行下载,我选择的是MySQL Community Server 8.0.35

3.2 下载完成后解压,放到固定的位置,我是放在了源码下面,找到我们所需的文件,文件路径为
D:\mysoft\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql-8.0.35-winx64\mysql-8.0.35-winx64\lib

4、修改源文件进行编译

4.1 修改mysql.pro文件。注释调第6行,增加13,15,16行内容,文件路径按照你实际放在的位置进行填写。

4.2 修改qsqldriverbase.pri文件。
 注释掉 include($$shadowed($$PWD)/qtsqldrivers-config.pri)
增加: include(./configure.pri)

5、开始编译选择release模式,输出文件会在当前驱动器下的 \plugins\sqldrivers文件夹下。

复制 qsqlmysql.dll 、qsqlmysql.dll.debug 两个文件至以下文件夹内。

D:\mysoft\Qt\5.15.2\mingw81_64\plugins\sqldrivers

至此编译工作完成,重新打开QtCreator即可调用QMYSQL驱动。

如若还是出现之前的问题,请将mysql-8.0.35-winx64 的lib和bin文件夹添加至系统环境变量中。

以下是调用mysql的案例:

    // 建立数据库连接  
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
    db.setHostName("localhost"); // 数据库服务器地址  
    db.setDatabaseName("mydatabase"); // 数据库名  
    db.setUserName("username"); // 数据库用户名  
    db.setPassword("password"); // 数据库密码  
  
    if (!db.open()) {  
        qDebug() << "数据库连接失败:" << db.lastError().text();  
    }  
  
    // 执行查询语句  
    QSqlQuery query;  
    QString sql = "SELECT * FROM mytable"; // 查询语句  
    if (!query.exec(sql)) {  
        qDebug() << "查询执行失败:" << query.lastError().text();  
    }  
  
    // 处理查询结果  
    while (query.next()) {  
        QString column1 = query.value(0).toString();  
        QString column2 = query.value(1).toString();  
        // 处理每一行的数据...  
        qDebug() << "Column1:" << column1 << "Column2:" << column2;  
    }  
  
    // 关闭数据库连接  
    db.close();  
  

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Qt 5.15.2与MySQL 8.0.33驱动程序编译在一起,您可以按照以下步骤进行操作: 1. 首先,确保您的系统已经安装了MySQL 8.0.33数据库。如果没有安装,请先从MySQL官方网站下载并安装。 2. 下载Qt 5.15.2的源代码,并解压到一个合适的文件夹。 3. 进入Qt源代码文件夹,在命令行运行以下命令以确保已经安装了必要的依赖项: ``` ./configure make ``` 4. 安装MySQL的开发包以获取必要的头文件和库文件。在Ubuntu系统上,可以使用以下命令进行安装: ``` sudo apt-get install libmysqlclient-dev ``` 5. 在Qt源代码文件夹,进入`qtbase/src/plugins/sqldrivers/mysql`文件夹。 6. 打开`mysql.pro`文件,并进行以下更改: - 添加`CONFIG += c++11`以启用C++11支持(如果尚未添加)。 - 添加`LIBS += -lmysqlclient_r`以链接MySQL客户端库。 7. 在命令行,进入`mysql`文件夹,并执行以下命令以编译MySQL驱动: ``` qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient_r" mysql.pro make ``` 8. 编译成功后,将生成的`libqsqlmysql.so`文件复制到Qt安装目录下的`plugins/sqldrivers`文件夹。 9. 完成上述步骤后,重新编译和构建您的Qt项目,应该就可以使用MySQL 8.0.33驱动程序了。 请注意,上述步骤适用于Ubuntu系统,如果您使用其他操作系统,请相应地修改命令和路径。同时,确保您安装的QtMySQL版本与本回答提到的版本相匹配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值