在使用QT 5.10进行MySQL数据库相关的开发时,出现了如下的报错:
QSqlDatabase: QMYSQL driver not loaded
解决方法:
链接:https://pan.baidu.com/s/13sN1gEDaRXRBmYqXREVXxQ
提取码:mr6g
下在好后将对应版本的libmysql.dll文件放入到对应编译器bin目录下
QT安装目录\Qt5.10.0\5.10.0\mingw53_32\bin
我的工程使用的是MinGW_32来编译的,所以放在这个目录下,实际情况根据工程编译器自行更改文件的位置。
重要说明:
网上很多的教程都是数据库libmysql.dll没放,但是我在代码中加入如下代码查看当前版本支持的数据库,发现这个版本的QT其实是支持MySQL的。
qDebug() << QSqlDatabase::drivers();//查看支持数据库驱动
运行结果:
上下非常的矛盾,既说我没有驱动,又说我驱动支持。经过一些列的查阅资料。找到了问题所在:
支持的数据库是在如下路径里
QT安装目录\Qt5.10.0\5.10.0\mingw53_32\plugins\sqldrivers
这里面包含了MinGW编译器(编译器不同可能文件也不同)支持的数据库的dll文件,只有这里有文件,使用
qDebug() << QSqlDatabase::drivers();
时才能显示出来支持的数据库。
最重要的来了,如果要使用MySQL数据库,这里面的qsqlmysql.dll,qsqlmysqld.dll和libmysql.dll必须保持位数和支持版本的一致性,这也是为什么网上很多的教程只把libmysql.dll文件放到bin目录下仍然无法连接数据库。
QT 5.04版本经测试将libmysql.dll文件放入后也可使用。(推测中间的版本应该都可用,未验证)
QT 5.12以上取消了官方对MySQL的支持,要采用编译的方式生成这三个文件。