Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
2017-09-11 19:35
537 查看
原文:http://blog.csdn.net/yy64578537/article/details/71006042
QT5虽然自带mysql驱动,不再需要像QT4那样自己进行编译。但是QT对mysql总归不是那么友好,在连接过程中,遇到了一坨又一坨的问题,参考了一坨又一坨的资料,用了将近一整天的时间,终于搞定了。直接上干货:
照着QT官方文档提供的方法(按F1),进行mysql数据库的连接:
“else”本来就想着意思意思,信心满满地等待着后台输出”成功连接数据库”,结果却被QT无情浇了一盆冷水:
嗯,很痛苦,再看后台输出,如下:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
翻译一下,意思大概就是:“QMYSQL驱动加载失败”,“可用驱动有:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL7”。
明明可用驱动中包含QMYSQL,为什么会提示加载失败呢?查看了一坨资料,总结了一下,应该是缺了加载mysql驱动时所需要的一些东西,导致加载失败。
根据网上提供的方法:将mysql安装目录中的libmysql.dll文件拷贝到QT安装目录下的bin目录中就可以了:
如上图拷贝后,继续在QT中运行源文件,结果还是会报一模一样的错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
然后又试了N种方法,错误依旧。把电脑砸了的心都有了~~
冷静过后,尝试手动加载mysql驱动,QT mysql驱动在“F:\QT\5.5\mingw492_32\plugins\sqldrivers”目录下(找到自己对应的目录就好了),在主函数中添加如下代码,尝试手动加载:
运行,后台输出如下:
false
“Cannot load library F:/QT/5.5/mingw492_32/plugins/sqldrivers/qsqlmysqld.dll: %1 不是有效的 Win32 应用程序。”
提示无法加载,%1后面的东西是什么玩意??不是有效的Win32应用程序???难道是我32位的QT和64位的mysql起了冲突??难道QT自带驱动只能针对mysql32位的,而不能连64位的mysql??迫不及待的去试了一下,果然是这个问题。解决方法主要有以下三种:
(1)卸载当前64位的mysql,重装32为的mysql。(不推荐)
(2)下载QT源码文件,重新编译mysql驱动。(不推荐)可参考链接:https://segmentfault.com/a/1190000005691216
(3)去https://dev.mysql.com/downloads/connector/c/下载32位的zip压缩包:
解压后得到libmysql.dll,将其复制到“F:\QT\5.5\mingw492_32\bin”(视自己情况而定)目录即可:
打开QT,运行,终于看到后台输出:
QT5虽然自带mysql驱动,不再需要像QT4那样自己进行编译。但是QT对mysql总归不是那么友好,在连接过程中,遇到了一坨又一坨的问题,参考了一坨又一坨的资料,用了将近一整天的时间,终于搞定了。直接上干货:
照着QT官方文档提供的方法(按F1),进行mysql数据库的连接:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("..."); db.setDatabaseName("..."); db.setUserName("..."); db.setPassword("..."); bool ok = db.open(); if(ok){ qDebug()<<"成功连接数据库"; }else{ QMessageBox::warning(NULL,"警告","无法连接数据库"); }
“else”本来就想着意思意思,信心满满地等待着后台输出”成功连接数据库”,结果却被QT无情浇了一盆冷水:
嗯,很痛苦,再看后台输出,如下:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
翻译一下,意思大概就是:“QMYSQL驱动加载失败”,“可用驱动有:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL7”。
明明可用驱动中包含QMYSQL,为什么会提示加载失败呢?查看了一坨资料,总结了一下,应该是缺了加载mysql驱动时所需要的一些东西,导致加载失败。
根据网上提供的方法:将mysql安装目录中的libmysql.dll文件拷贝到QT安装目录下的bin目录中就可以了:
如上图拷贝后,继续在QT中运行源文件,结果还是会报一模一样的错误:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
然后又试了N种方法,错误依旧。把电脑砸了的心都有了~~
冷静过后,尝试手动加载mysql驱动,QT mysql驱动在“F:\QT\5.5\mingw492_32\plugins\sqldrivers”目录下(找到自己对应的目录就好了),在主函数中添加如下代码,尝试手动加载:
#include <QPluginLoader> void loadMySqlDriver(); int main(int argc, char *argv[]) { QApplication a(argc, argv); loadMySqlDriver(); MainWindow w; w.show(); return a.exec(); } void loadMySqlDriver() { QPluginLoader loader; // MySQL 驱动插件的路径 loader.setFileName("F:/QT/5.5/mingw492_32/plugins/sqldrivers/qsqlmysqld.dll"); qDebug() << loader.load(); qDebug() << loader.errorString(); }
运行,后台输出如下:
false
“Cannot load library F:/QT/5.5/mingw492_32/plugins/sqldrivers/qsqlmysqld.dll: %1 不是有效的 Win32 应用程序。”
提示无法加载,%1后面的东西是什么玩意??不是有效的Win32应用程序???难道是我32位的QT和64位的mysql起了冲突??难道QT自带驱动只能针对mysql32位的,而不能连64位的mysql??迫不及待的去试了一下,果然是这个问题。解决方法主要有以下三种:
(1)卸载当前64位的mysql,重装32为的mysql。(不推荐)
(2)下载QT源码文件,重新编译mysql驱动。(不推荐)可参考链接:https://segmentfault.com/a/1190000005691216
(3)去https://dev.mysql.com/downloads/connector/c/下载32位的zip压缩包:
解压后得到libmysql.dll,将其复制到“F:\QT\5.5\mingw492_32\bin”(视自己情况而定)目录即可:
打开QT,运行,终于看到后台输出:
相关文章推荐
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Qt5 MySql驱动问题(qt和mysql各种小白问题亲测解决,若有相关问题可留言交流)
- Ubuntu下Qt与Mysql驱动问题解决
- 解决qt mysql出现的:无法加载驱动问题
- 解决没有安装Qt 的mysql sql驱动插件情况下不能连接数据库的问题
- qt-mysql连接不上数据库缺少驱动问题解决
- windows 下 解决 QT 与 mysql 数据库 驱动问题的本质
- Ubuntu中Qt5.3连接MySql无法加载驱动问题解决
- 有关MySQL驱动的相关问题与解决方法
- QT使用MySql的配置(使用addLibraryPath载入插件),编译QT的MySql驱动问题及解决方案(自己使用libmysql.lib进行编译mysql.pro,万不得已可以查看Makefile.Debug以解决问题)
- 解决qt mysql出现的:无法加载驱动问题
- Linux下解决Qt连接MySql找不到驱动的问题
- QT执行MYSQL语句问题解决
- Mysql 字符串编码,解决各种乱码问题
- ubuntu下安装qt 的mysql 驱动遇到的问题