如何加载QMYSQL驱动?遭遇驱动未加载问题求助
解决QMYSQL驱动加载失败的步骤
1. 修正代码中的核心错误
MySQL是客户端-服务器架构,不能直接指定数据文件路径(你代码里的city.idb是MySQL的底层数据文件,不是连接用的数据库名)。需要填写数据库的逻辑名称(比如示例中的world),修正后的代码:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setDatabaseName("world"); // 这里填数据库名称,不是本地文件路径 db.setHostName("localhost"); db.setUserName("root"); db.setPassword("1234567890"); // 新增连接检查,方便定位问题 if (!db.open()) { qDebug() << "连接失败:" << db.lastError().text(); } else { qDebug() << "连接成功"; }
2. 确认驱动文件的正确位置
你找到的libqsqlmysql.dll和libqsqlmysqld.dll是Qt的动态驱动文件,不需要.a静态库(静态库仅用于Qt静态编译场景)。这些.dll文件需要放在以下两个位置之一:
- Qt官方驱动目录:
<QtDir>\mingw73_xx\plugins\sqldrivers - 你的程序运行目录:在.exe所在文件夹下创建
sqldrivers子目录,将两个.dll文件放入其中
3. 解决MySQL依赖库缺失问题
QMYSQL驱动依赖MySQL的客户端库libmysql.dll,必须确保程序能找到这个文件:
- 从MySQL安装目录(通常是
C:\Program Files\MySQL\MySQL Server 8.0\lib)复制libmysql.dll到你的程序运行目录 - 或者将该文件复制到
<QtDir>\mingw73_xx\bin目录 - 也可以把MySQL的
lib目录添加到系统环境变量PATH中
4. 验证驱动加载状态
运行程序后,如果仍报错,通过db.lastError().text()输出的具体信息,能快速定位是权限问题、网络问题还是库文件缺失问题。
内容的提问来源于stack exchange,提问作者mrtz-dvlpr
相关产品推荐
相关产品推荐

