需求
使用 qt 连接 mysql 时报错,提示 QSqlDatabase: QMYSQL driver not loaded。
解决
qt 连接 mysql 的通道从上向下:
- qt 程序
- qt 数据库插件即: qsqlmysql.dll 和 qsqlmysqld.dll
- mysql 库: libmysql.dll
- mysql 可执行文件: mysql.exe
检查是否有 qt 数据库插件
这种一般报错就是: QSqlDatabase: QMYSQL driver not loaded
QStringList drivers = QSqlDatabase::drivers(); //获取现在可用的数据库驱动
foreach(QString driver, drivers) {
qDebug() << driver;
}
查看输入里面有没有 "QMYSQL"
, 如果没有,就需要按照 qt 官网的方法编译一个出来。
检查 mysql 库
这种一般的报错就是连接不上。
编译调试的时候,一般可以自动找到 libmysql.dll
, 但是 release 的时候,就会缺少这个了。需要从 mysql 的安装目录下面的 lib 文件夹中,把这个库复制到 release 之后的文件夹内。
检查 mysql 可执行文件
这种报错就是连接步上。
一般是目标机器上没有安装 mysql, 最简单的办法就是安装 mysql 选择 client 版本就可以了。
版本问题
qt 可能和 mysql 因为 32位64位的问题,导致不能用,这个最好统一为 64位。
参考
- 【QT连接Mysql时报错:QSqlDatabase: QMYSQL driver not loaded。解决方案(亲测成功)】
- QMYSQL driver not loaded 的原理和解决办法
- Qt连接MySQL数据库最详细的教程
- QSqlQuery::prepare: database not open 寻求帮忙,谢谢各位
- 解决QSqlQuery::exec: database not open
- QMYSQL driver not loaded(完整解决方案)
- Qt连接MySQL数据驱动(绝对有效)
- QMYSQL driver not loaded 原因以及办法(附驱动)
- QT:MYSQL driver not loaded解决方法
- windows下QT编译mysql插件踩坑与解决
- SQL Database Drivers
- How to create Qt 6.5 mysql driver with cmake?