赞
踩
QT连接MySQL出现错误:QMYSQL driver not loaded ,QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
问题原因,无对应驱动
尝试但无效的方法,简述
自述:初学QT的菜鸡,使用QT连接数据库一直搞不定,看了多种方法但都无法解决,糟心。磨蹭好几天后,终于找到有效的解决方法,遂记录之。
1.1 去QT安装目录,找到对应文件夹:
D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
1.2 双击打开mysql.pro,并添加如下代码。C:/Program Files/MySQL/MySQL Server 8.0为MySQL的安装路径
LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql
INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DESTDIR = ../mysql/lib/ #设置编译后文件的位置
1.3 注释掉
QMAKE_USE += mysql
。 否则编译后出错:Library ‘mysql’ is not defined。
修改后的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) #INCLUDEPATH += C:/Program Files/MySQL/MySQL Server 8.0/include/ #LIBS += C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include) DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include) DESTDIR = ../mysql/lib/
1.4 编译后出错:Cannot read D:/qtsqldrivers-config.pri: No such file or directory
解决:在项目中找到qsqldriverbase.pri文件并打开,注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri)
,并添加include(./configure.pri)
1.5 编译(构建)
注意要选择对应的编译器。比如本文用64位MinGW编译器。
出现下框,关闭或取消即可
编译完成后,在mysql目录下(DESTDIR = ../mysql/lib/
),打开lib文件夹,将qsqlmysql.dll
与qsqlmysql.dll.debug
文件移动到`D:\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers文件夹下。
将MySQL安装目录
C:\Program Files\MySQL\MySQL Server 8.0\lib
下的libmysql.dll
移动到QT安装目录
D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin
中。
至此,搞定。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。