You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OpenServer时QT项目提示QMYSQL driver not loaded问题求助

解决QT中“QMYSQL driver not loaded”错误(OpenServer环境)

针对你遇到的问题,结合已完成的操作,补充以下关键排查和解决步骤:

1. 确认QT的MySQL驱动文件存在且匹配

  • 找到QT安装目录下的plugins/sqldrivers文件夹,检查是否有qsqlmysql.dll(Windows平台)及配套的qsqlmysql.lib。
  • 重点:驱动的编译环境(MSVC/MinGW)、位数(32/64位)必须和你的QT项目编译套件、OpenServer中的MySQL版本完全一致。如果驱动缺失,需要自行编译或下载对应版本的驱动。

2. 复制MySQL依赖库到QT运行目录

从OpenServer的MySQL安装路径(通常为OpenServer/modules/mysql[版本号]/bin)中找到libmysql.dll,将其复制到:

  • 你的QT项目的debug/release输出目录(直接和可执行文件同目录);
  • 或者QT安装目录的bin文件夹下。
    仅添加系统路径可能因优先级问题导致加载失败,直接复制到运行目录是更可靠的方案。

3. 添加调试代码定位具体错误

在数据库初始化代码中加入调试输出,获取更详细的错误信息:

#include <QDebug>
#include <QSqlDatabase>
#include <QSqlError>

// ... 你的数据库初始化代码
qDebug() << "可用驱动列表:" << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("你的数据库名");
db.setPort(3306); // 确认OpenServer中MySQL的实际端口,默认3306
db.setUserName("root");
db.setPassword("你的密码");

if (!db.open()) {
    qDebug() << "数据库连接失败:" << db.lastError().text();
}

运行后查看控制台输出,除了“driver not loaded”,通常会提示具体的依赖缺失(如找不到某dll)或配置错误。

4. 验证OpenServer的MySQL服务状态

  • 确保OpenServer中的MySQL服务已启动,通过自带的phpMyAdmin或其他MySQL客户端测试连接,确认主机名、端口、用户名、密码的正确性。

5. 检查项目编译配置

  • 确认.pro文件中QT += sql已正确添加,并且执行过qmake后重新编译项目,避免配置未生效。
  • 检查QT项目的编译套件(Kit)位数:若OpenServer使用64位MySQL,QT必须对应使用64位编译套件,反之亦然。

结合你提供的截图补充排查点

  • mainwindow.cpp截图:检查驱动名是否拼写为"QMYSQL"(注意大小写,不能写"MYSQL");
  • .pro文件截图:确认QT += sql无拼写错误;
  • MySQL界面截图:确认目标数据库存在、服务处于运行状态;
  • 系统路径截图:确认添加的MySQL路径正确,但仍建议优先采用复制libmysql.dll到运行目录的方案。

内容的提问来源于stack exchange,提问作者Foksen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 07:30:57