QT 连接 MySql 失败
环境:Qt 5.12.2 32位,MySql 5.7.35 32位
当出现 QMYSQL driver not loaded
时,是数据库驱动问题。
原文链接:https://blog.csdn.net/m0_46355585/article/details/116783843
报错须知
D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\plugins\sqldrivers 目录下缺少驱动:
D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\bin 目录下缺少驱动:
解决办法:
方法一:
- 直接将现成的驱动文件放入指定目录下(但要保证驱动文件符合你的环境)
- 将
qsqlmysql.dll
和qsqlmysqld.dll
拷贝到Qt的安装目录下。我的是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\plugins\sqldrivers - 将
libmysql.dll
复制到Qt的安装目录中。我的是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\bin
方法二:
先保证 Qt 和 MySql 的 位数相同,都是32位或者64位
-
打开打开Qt安装路径下的源码 ,我的是:D:\software\Qt\Qt5.12.2\5.12.2\Src\qtbase\src\plugins\sqldrivers\mysql 下的mysql.pro
-
然后修改 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) #这个主要是添加.h依赖文件使用 INCLUDEPATH += "C:/Program Files (x86)/MySQL/MySQL Server 5.7/include" #INCLUDEPATH += $$quote() #添加依赖的.lib文件 LIBS += "C:/Program Files (x86)/MySQL/MySQL Server 5.7/lib/libmysql.lib" #生成你所需要的dll存放目录 DESTDIR = $$PWD/lib/aa
-
然后修改 qsqldriverbase.pro
QT = core core-private sql-private # For QMAKE_USE in the parent projects. #include($$shadowed($$PWD)/qtsqldrivers-config.pri) #更方便准确的找到qtsqldrivers-config.pri文件 include(./configure.pri) PLUGIN_TYPE = sqldrivers load(qt_plugin) DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
-
因为我的是 32位,所以选择:32位的选择MinWG32套件进行构建
-
构建成功后在 lib/aa 下 输出四个文件
-
然后将两个动态库文件拷贝到Qt的安装目录下。我的是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\plugins\sqldrivers
-
让后将mysql中的 libmysql.dll 复制到 Qt的安装目录中。
我的MySql路径是:C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib
我的Qt 路径是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\bin
-
这样就完成了。。。