赞
踩
缺少Mysql驱动
QSqlDatabase: 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
MySql database open fail --- QSqlError("", "Driver not loaded", "Driver not loaded")
原理:QT要连接Mysql,要通过QT的数据库连接插件连接到Mysql的动态库,再连接到MySql
不同版本的QT需要的插件不完全相同
版本太高,可能会没有这个文件,我的是QT5.14.2
找到这个文件 D:\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql,
用QT打开后,修改后点击编译
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 win32:LIBS += -LD:/MySQL/MySQLServer5.7/lib -llibmysql INCLUDEPATH += D:/MySQL/MySQLServer5.7/include DEPENDPATH += D:/MySQL/MySQLServer5.7/include include(../qsqldriverbase.pri)
这是因为你的文件路径有空格 这几个代码路径不能有空格,直接修改文件路径的话,你的mysql服务会出现问题,无法打开什么的
我试了很久,还是重开吧,我重新又装了一次mysql,注意QT的版本跟MySql的版本要一致,都是64位或者都是32位
win32:LIBS += -LD:/MySQL/MySQLServer5.7/lib -llibmysql
INCLUDEPATH += D:/MySQL/MySQLServer5.7/include
DEPENDPATH += D:/MySQL/MySQLServer5.7/include
打开qsqldriverbase.pri文件,将第四行注释掉,即 #include($ s h a d o w e d ( shadowed( shadowed( $PWD)/qtsqldrivers-config.pri),
添加include(./configure.pri)
复制这两个文件到D:\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers
/
/
连接数据库代码:
//创建数据库类型 db = QSqlDatabase::addDatabase("QMYSQL"); db.setDatabaseName(""); db.setHostName("127.0.0.1"); db.setPort(3306); db.setUserName(""); db.setPassword(""); if(!db.open()) { qDebug() <<"MySql database open fail --- " << db.lastError(); } else { qDebug() <<"MySql database open successfully"; }
成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。