qt中如果没有配置而直接使用mysql连接数据库,大概率会出现以下情况
QMYSQL driver not loaded
解决步骤:
1.确定qt版本、位数和Mysql位数以及qt安装时是否有源码
Mysql位数可以看它在那个文件夹,如果在 Program Files (x86) 里,就是32位,
如果在 Program Files 就是64位
如果没有qt源码或者位数不对,可以用qt目录下的 MaintenanceTool.exe 自行更改
2.找到qt源码中的sql驱动
目录大概是:C:\Qt\5.15.2(qt版本号)\Src\qtbase\src\plugins\sqldrivers
找到mysql文件夹 用qt打开
编辑mysql.pro
更改地方如图所示
TARGET = qsqlmysql
INCLUDEPATH += "C:\Program Files (x86)\MySQL\MySQL Server 5.5\include"
LIBS += "C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib\libmysql.lib"
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)
DESTDIR = ../mysql/lib/
按照诸位的悟性,根据自己的mysql版本和位置自行配置
配置完之后 编译运行 发现多了一个lib文件夹
打开它 复制以下2个文件
复制到
C:\Qt\5.15.2\mingw81_32\plugins\sqldrivers
(根据自己的qt版本号、编译器的版本号自行修改)
3.找到mysql提供的lib
就是这个
LIBS += "C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib\libmysql.lib"
地址就是字符串
到 C:\Program Files (x86)\MySQL\MySQL Server 5.5\lib\libmysql.lib
复制
到 C:\Qt\5.15.2\mingw81_32\bin
接着 重启qt
配置完成