写在前面:大神编译好的现成的驱动:https://github.com/thecodemonkey86/qt_mysql_driver
编译MySQL驱动
Qt5.13版本后不包含MySQL的驱动插件,需要自己手动编译。
而对于不同的编译套件,又需要分别编译,这里将阐述详细过程~
在编译MySQL驱动之前,请确保Qt的Source源码已经安装好了~
-
在Qt安装目录找到Qt的插件源码目录
X:xxx\Qt\Qt6\6.2.4\Src\qtbase\src\plugins\sqldrivers
进入sqldrivers目录之后,用QtCreator打开,套件选择MinGW 64-bit,等待配置完成,构建类型选择Release
点击左边工具菜单的项目,勾上mysql,点击编译(记得先把你的MySQL配置到环境变量哟)
如果编译没有问题,将会在同级目录生成build目录,进入找到(plugins/sqldrivers)编译好的驱动
qsqlmysql.dll
,把它拷贝到MinGw64套件的驱动目录。
找到并复制
粘贴进套件的sqldrivers目录
然后点击编译,会在Qt安装目录的盘符根目录(我这里是在D盘)生成plugins文件夹(D:\plugins),进入找到qsqlmysql.dll,复制到Qt对应的编译套件目录中的plugins/sqldrivers目录中
测试是否配置成功
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlError>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setUserName("root");
db.setPassword("12345678");
db.setDatabaseName("test");
if(!db.open())
{
qInfo()<<"数据库打开失败"<<db.lastError().text();
}
else
{
qInfo()<<"数据库打开成功";
}
return a.exec();
}
MySQL客户端程序部署
如果你的程序使用了MySQL数据库,那么在部署时,需要将MySQL的依赖,一并拷贝到exe同级目录。
-
如果没有拷贝libmysql.dll动态库,会出现如下错误
明明显示了有QMYSQL驱动,却提示驱动没有加载,在MySQL安装目录的lib目录把libmysql.dll
拷贝到exe同级目录试试。
咦!怎么和刚刚的错误信息一样,加了和没加一样,这是因为还需要一些库,这些库可以在MySQL的安装目录的bin目录里面找到
-
libcrypto-1_1-x64.dll 加密解密库
-
libssl-1_1-x64.dll 安全传输库
找到之后,同样拷贝进去,在双击运行即可!
最直接、最有效、最方便的做法:
下载压缩包(文章顶部)
将相应的套件的MySql驱动放在exe的同级目录下:
即可大功告成!