Qt连接MySQL数据库失败
连接MySQL数据库时报错:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
有上述报错是因为使用的qt版本不自带mysql的驱动,需要手动编译。可以检查一下D:\pawf\Program\dev\cpp\Qt\5.15.2\mingw81_64\plugins\sqldrivers
目录中是否有mysql的驱动文件,如下图所示:
注意:不同版本的MySQL里面包含不同的libmysql.dll,不同的libmysql.dll必须和配套的qsqlmysqld.dll一起才能正常工作!
进入到D:\pawf\Program\dev\cpp\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql
目录中,使用qtcreator
打开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)
//该路径是MySQL的头文件路径
INCLUDEPATH += "D:\pawf\Program\dev\MySQL\MySQL Server 8.0\include"
//这是MySQL的库文件路径
LIBS += "D:\pawf\Program\dev\MySQL\MySQL Server 8.0\lib/libmysql.lib"
//为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置
DESTDIR = ../mysql/lib/
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
# include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
构建后在编译的输出信息中会显示生成的驱动文件的路径:
将qsqlmysql.dll
和qsqlmysql.dll.debug
复制到D:\pawf\Program\dev\cpp\Qt\5.15.2\mingw81_64\plugins\sqldrivers
目录中即可。
注意:需要将MySQL的D:\pawf\Program\dev\MySQL\MySQL Server 8.0\lib
目录中的libmysql.dll添加到可执行文件的目录中,如果出现类似于没有加载mysql驱动但是又能够找到mysql的驱动这种错误,就说明缺少这个文件。当然,不添加也行,可以通过设置环境变量的方法来使可执行文件能够找到该文件,但是在打包的时候是不会自动添加这个文件的,所以一定不要忘记手动添加该文件到程序目录中。
按照上述内容去做的话,使用qtcreator进行开发应该就没问题了,但是在使用clion进行开发时还是会有问题,会出现类似于mysql驱动未加载,没有可用驱动这种报错,程序直接非正常结束。
将自己使用的类似于D:\pawf\Program\dev\cpp\qt\5.15.2\mingw81_64\bin
这个目录添加到环境变量就可以了。还有问题的话可以重启一下Clion。或者不添加环境变量也行,直接在可执行程序的目录下使用windeployqt命令打包程序
,再把libmysql.dll复制过来就行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具