Qt 连接MySQL 驱动问题,导致数据库连接异常。 通常有一下几种解决方案,
一、将mysql安装目录下的lib\libmysql.dll 复制到你的编译目录下即可
方法二:32位Qt连接64位Mysql异常解决方案 异常位:QSqlDatabase:QMySQL driver not loaded_大大大超的博客-CSDN博客_32位qt连接64位mysql
如果还是不行, 就要使用终极大招:手动编译mysql驱动了
1. 安装QT源码,找到mysql驱动源码,一般路径为:Qt5.12.6\5.12.6\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro
2. 通过Qt 打开该源码,修改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
DESTDIR = $$PWD/sutMySQL
INCLUDEPATH += "E:/mysql/include"
DEPENDPATH += "E:/mysql/include"
LIBS += "E:/mysql/lib/libmysql.lib"
include(../qsqldriverbase.pri)
3.qmake+构建后可生成qsqlmysql.dll qsqlmysqld.dll ,一般在Qt 安装磁盘的根目录下,如:我的Qt 安装在D盘,生成的驱动目录为:
4.将qsqlmysql.dll qsqlmysqld.dll 复制到 Qt的Qt5.12.6\5.12.6\msvc2017_64\plugins\sqldrivers目录下
5.将mysql 安装目录下的lib\libmysql.dll 复制到Qt5.12.6\5.12.6\msvc2017_64\bin下即可
运行测试程序, 连接成功, 特编写次笔记,以便下次寻找。
如还无法解决, 可能是libmysql.dll 依赖别的库 参考这个QMYSQL driver not loaded 原理及解决方案