本篇文章用于记录与分享在Qt连接数据库时报“driver not loaded”的错误,原因是缺少MySQL数据库驱动(即Driver)或MySQL相关库,只需要将相关库与相关的驱动放置到对于的文件中即可。
qt5-qt6所有MySQL驱动下载地址:
Releases · thecodemonkey86/qt_mysql_driver (github.com)
Qt5的版本提供了MySQL的pro文件,可以手动编译,不过本人觉得太过于繁琐,也难记,网上的教程五花八门,去搜索还比较费时间,还不如直接将现成的驱动直接拷贝,这样比较直截了当,也不费时间,这点就踩过很多坑,感兴趣的朋友可以自己试一下手动编译。
Qt6的版本并不提供MySQL的pro文件,但也可以手动编译,具体步骤可以搜索一下。
注意:我使用的Qt版本是Qt5.15.2,下述步骤也是在此版本的基础上完成,当然Qt6的版本我也试过,仍然可以
一、下载驱动文件
点击链接会访问到github的此页面,如果点击进去没有看到你的版本,往下滑可以找到你使用的版本:
注意一定要下载自己Qt版本对应的驱动才可以,这点我也踩过坑,一不小心下载成其他版本的,测试代码时,一直连接失败。
下载解压好之后我们得到:
二、复制文件
(1)将这三个文件复制到Qt安装目录中对应你自己使用的编译器的bin目录下
(2)将sqldrivers下的所有文件复制到Qt安装目录中对应你自己使用的编译器的plugins\sqldrivers目录中
注意是所有文件!!!!
注意:Qt5版本在下载驱动的时候sqldrivers文件夹中可能只有qsqlmysql.dll,没有qsqlmysql.debug,这个不影响使用,亲测过,主要需要的是qsqlmysql.dll这个文件。
这是Qt5版本的,只有一个文件:
这是Qt6版本的,比Qt5多一个文件
不管是Qt的什么版本,都将sqldrivers下的所有文件复制到Qt安装目录中对应你自己使用的编译器的plugins\sqldrivers目录中
(3)数据库连接测试
完成上述步骤后,Qt的MySQL驱动就基本加载完成了,下一步打开Qt新建一个项目测试一下数据库是否连接成功以及驱动是否加载成功
测试代码主要部分:
qDebug() << QSqlDatabase::drivers(); //获取驱动列表
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setUserName("root");
db.setPassword("root");
if(!db.open())
{
qDebug()<<"数据库连接失败! "<<db.lastError().text();
}
else
{
qDebug()<<"数据库连接成功";
}
项目创建就自行创建了,不做演示了!
根据我们打印的数据库驱动列表可以看到,MySQL的驱动已经加载成功!
上述步骤就是本人根据网上很多教程,已经踩了很多坑总结出来的步骤,如果有什么不对的地方,欢迎各位朋友指出,在评论区讨论或者私信一下我,我做一下修改!!
谢谢各位的观看!