win10下用Qt5.13.2与mysql-connector-c++-8.0.20编译mysql动态链接库j解决QMYSQL driver not loaded

本文详细介绍如何在64位Win10环境下使用Qt5.13.2和MingGW7.3.0编译MySQL动态链接库,包括qsqlmysql.dll、qsqlmysqld.dll等文件。步骤覆盖安装配置、路径设置、pro文件修改及编译命令,适用于希望整合MySQL与Qt应用的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


64bit win10下Qt5.13.2用MingGW7.3.0 64-bit与mysql-connector-c++-8.0.20-winx64编译mysql动态链接库qsqlmysql.dll、qsqlmysqld.dll、libqsqlmysql.a、libqsqlmysqld.a

1、安装Qt5.13.2,下载地址http://download.qt.io/archive/qt/
版本可自选,管理员权限运行安装包
建议:夜里安装,直接全选,早上醒来,一切都安装好了
路径一定要注意,不要安装Program Files,或者其他有空格及中文的路径中
建议:C:/QT
2、下载安装mysql-connector-c++-8.0.20-winx64.zip,下载地址:https://dev.mysql.com/downloads/
版本自选
路径一定要注意,不要安装Program Files,或者其他有空格及中文的路径中
建议:创建C:/mysql,将压缩包内容直接解压至该目录
3、编译mysql动态链接库
3.1修改mysql.pro文件
用文件浏览器打开C:\QT\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql
找到mysql.pro文件,打开
于QMAKE_USE += mysql前加#
#QMAKE_USE += mysql
3.2编译
开始(或win键)->Qt 5.13.2->5.13.2->MinGW 7.3.0(64-bit)->Qt5.13.2(MinGW 7.3.0 64-bit)
依次输入如下命令
cd C:\QT\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql
cd ..
qmake
cd mysql
qmake “INCLUDEPATH+=C:/mysql/include” "LIBS+=C:/mysql/lib/libmysql.lib" -o Makefile mysql.pro
mingw32-make
mingw32-make install

若一切正常,则大功告成
可于C:\QT\5.13.2\Src\qtbase\src\plugins\sqldrivers\plugins\sqldrivers下
看见
libqsqlmysql.a
libqsqlmysqld.a
libqsqlmysql.dll
libqsqlmysqld.dll
四个文件

如果出现找不到的路径错误,查看修改路径即可
建议重装qt与mysql然后再编译

mysql-connector-c++-8.0.20-winx64.zip也可以用
mysql-8.0.20-winx64.zip或mysql-connector-c-6.1.11-winx64.zip代替

编译好的文件,放在

https://download.youkuaiyun.com/download/aa819310/12556251

大家可试用

<think>嗯,用户想在Qt中使用MySQL Connector C++ 8.0,需要教程或指南。首先,我得确认用户的环境和需求。他们可能已经安装了QtMySQL,但不确定如何正确配置连接。可能需要检查Qt的版本是否支持MySQL驱动,因为默认情况下Qt可能没有启用MySQL插件。 用户可能遇到的问题是编译MySQL驱动时缺少必要的库文件,或者连接时出现错误。比如,常见的错误是“QMYSQL driver not loaded”,这可能是因为没有正确编译插件或者路径配置不对。 接下来,我得回忆一下Qt连接MySQL的步骤。首先需要确保有MySQL的客户端库,比如libmysql.dll或libmysql.lib。然后,在编译Qt时,需要配置源码并构建mysql插件。用户可能需要使用Qt的源码来编译驱动,特别是如果他们使用的Qt版本没有预编译MySQL驱动的话。 另外,用户提到使用MySQL Connector C++ 8.0,这可能需要包含正确的头文件和链接库。需要注意Connector的版本是否Qt兼容,比如是否使用相同的编译器构建。可能需要设置.pro文件中的INCLUDEPATH和LIBS来指向Connector的安装目录。 还有,运行时的问题,比如部署应用程序时需要将MySQL的动态库放在正确的位置,否则程序可能无法运行。用户可能需要将libmysql.dll放在应用程序的目录或系统路径中。 最后,测试连接是否成功,编写一个简单的数据库连接代码,并处理可能的异常情况,比如数据库服务未启动或认证失败。用户可能需要示例代码来参考,确保每一步都正确执行。 总结下来,步骤可能包括安装依赖库、编译QtMySQL插件、配置项目文件、编写连接代码以及处理部署时的依赖问题。需要详细说明每个步骤,并给出常见问题的解决方法,帮助用户顺利完成配置。</think>在Qt中使用MySQL Connector C++ 8.0需要完成以下关键步骤: ### 一、环境准备 1. 安装**MySQL Connector/C++ 8.0**开发包 - 从[MySQL官网](https://dev.mysql.com/downloads/connector/cpp/)下载对应平台的开发包 - 解压后包含`include`头文件目录和`lib64`库文件目录[^1] 2. 验证Qt安装 ```bash qmake -v # 确认Qt版本 >= 5.12(建议使用Qt 6.2+) ``` ### 二、项目配置 在`.pro`文件中添加: ```qmake INCLUDEPATH += "C:/mysql-connector-c++/include" # 替换为实际路径 LIBS += -L"C:/mysql-connector-c++/lib64" -lmysqlcppconn8 ``` ### 三、核心代码实现 ```cpp #include <mysqlx/xdevapi.h> bool connectDB() { try { mysqlx::Session sess("localhost", 3306, "root", "password"); mysqlx::Schema db = sess.getSchema("testdb"); qDebug() << "Connected to MySQL 8.0!"; return true; } catch (const mysqlx::Error &err) { qDebug() << "Error: " << err.what(); return false; } } ``` ### 四、编译注意事项 1. **ABI兼容性**:确保ConnectorQt使用相同的编译器(如MSVC 2019) 2. **运行时依赖**:需将`libmysqlcppconn8.dll`复制到可执行文件目录 3. **SSL配置**:MySQL 8.0默认需要SSL连接,添加: ```cpp mysqlx::SessionSettings settings( mysqlx::SessionOption::HOST, "localhost", mysqlx::SessionOption::PORT, 3306, mysqlx::SessionOption::USER, "root", mysqlx::SessionOption::SSL_MODE, mysqlx::SSLMode::DISABLED // 非生产环境可禁用 ); ``` ### 五、验证连接 ```cpp QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("testdb"); db.setUserName("root"); db.setPassword("password"); if (db.open()) { qDebug() << "QMYSQL connection established"; } ``` ### 常见问题解决 1. **驱动加载失败**:确认`qsqlmysql.dll`位于`Qt/plugins/sqldrivers` 2. **认证协议错误**:在MySQL执行: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值