QT5.12.12访问MySQL5.7数据库报错:QMYSQL driver not loaded
查阅资料并实践后给出以下解决方案
1.找到Qt安装路径并打开sqldrivers文件夹(例如:D:\Download\Qt\5.12.12\mingw73_64\plugins\sqldrivers)
2.当发现没有关于mysql的dll时找到Qt的源码文件夹(注:当时安装Qt时选择了src选项才可以,如果没有选择这篇文章帮不到你,如果你不知道当时选没选可以到Qt安装路径下查看 例如:D:\Download\Qt\5.12.12)
3.双击进入Src文件夹找到 以下路径
例: D:\Download\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql
使用Qt打开mysql.pro文件
打开后的文件是这样的
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
然后将QMAKE_USE += mysql使用#号注释掉(不出意外应该就在第6行)
然后添加如下代码
(注:此处包含C盘的路径是我的MySQL安装路径请将路径切换成你的MySQL安装路径)
DESTDIR = ../mysql/mysqlDll
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 5.7/include"
DEPENDPATH += "C:/Program Files/MySQL/MySQL Server 5.7/include"
LIBS += "C:/Program Files/MySQL/MySQL Server 5.7/lib/libmysql.lib"
这句话的意思是将构建出来的dll文件放入mysql文件夹下的mysqlDll文件下
DESTDIR = ../mysql/mysqlDll
有的博客将LIBS的路径写的是如下形式我这么写“没有成功”
LIBS += -L"C:/Program Files/MySQL/MySQL Server 5.7/lib -llibmysql"
修改好后构建一下会发现有错误,别慌逐个击破
其中一个是没有qtsqldrivers-config.pri文件
解决办法:打开qsqldriverbase.pri文件 修改成如下
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
注释掉第4行的
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
然后添加
include(./configure.pri)
再次编译编译成功进入到Qt安装目录下的mysql文件夹(例: D:\Download\Qt\5.12.12\Src\qtbase\src\plugins\sqldrivers\mysql)
再进入到mysqlDll文件夹
选择qsqlmysqld.dll文件将文件拷贝到QT安装目录的sqldrivers文件夹内
(例如:D:\Download\Qt\5.12.12\mingw73_64\plugins\sqldrivers)
最后将mysql安装目录下的dll文件拷贝到qt安装目录下的mingw73_64下的bin文件中
拷贝后
然后去qt中运行程序 成功