QMYSQL driver not loaded 的原理和解决办法
转:http://blog.csdn.net/m15814478834/article/details/49902077
最近使用Qt遇到了"QMYSQL driver not loaded"的问题.网上回答五花八门.大部分都没法根本解决问题.解决问题的没有原理,过程还繁琐极容易犯错.希望看到我这片文章的人不要在花两周时间折腾各个版本的MySQL,各个版本的Qt了.
没时间的直接看最后总结.
Qt连接到mysql的过程
Qt->Qt的数据库插件->mysql动态库->mysql
Qt的数据库插件是\plugins\sqldrivers下的qsqlmysqld.dll qsqlmysql.dll
mysql动态库是在mysql的安装目录下的libmysql.dll
以上dll存在才能顺利连接数据库.所以这篇文章所代表的拷贝libmysql.dll文件的答案占了一大半.实际上解决问题纯属幸运.当然因为需要dll,这篇文章所代表的配置环境变量又误导了一堆人,这种配置环境变量的方法更是看脸.什么mysql空格什么的更是无稽之谈.至少qt5.1开始.没有路径空格和中文的限制了.
那么为什么很多人使用Qt5以上的版本,其中包含qsqlmysqld.dll qsqlmysql.dll文件,也把libmysql.dll拷贝到Qt的bin或者程序输出目录了也还是driver not loaded呢?
因为不同版本的mysql里面包含不同的libmysql.dll, 不同的libmysql.dll必须和配套的qsqlmysqld.dll qsqlmysql.dll一起才能正常工作.
知道为什么了,如何解决呢?找到libmysql.dll去重新编译对应版本的qsqlmysqld.dll qsqlmysql.dll.别担心,和我一样不愿意敲命令行的人.我介绍一种使用Qt creater编译的方法.
1:打开Qt安装路径下的源码.例如C:\Qt\Qt5.2.0\5.2.0\Src\qtbase\src\plugins\sqldrivers\mysql.(如果没有src路径,重新安装Qt,选择完全安装就有了)双击mysql.pro
2:如果是连接远程数据库,本机可以不装mysql,但是必须找到一个mysql的安装目录复制到本地.这里面包含includ目录和lib目录.
3:编译一下mysql.pro,提示少头文件,mysql.pro中添加2中的include目录,再编译,缺少lib文件.添加lib文件.下图示例
4:把编译好的qsqlmysqld.dll qsqlmysql.dll拷贝到\plugins\sqldrivers下
5:mysql文件夹下lib路径下的libmysql.dll复制到到目录mingw47_32\bin
总结:不同版本的mysql里面包含不同的libmysql.dll, 不同的libmysql.dll必须和配套的qsqlmysqld.dll qsqlmysql.dll一起才能正常工作.可以下载别人编译好的.
qsqlmysqld.dll qsqlmysql.dll拷贝到\plugins\sqldrivers,libmysql.dll复制到到目录mingw47_32\bin.必须配套使用,配套使用,配套使用.
QMYSQL driver not loaded 的原理和解决办法的更多相关文章
- fedora 18~20 中Qt 5.2.1 解决连接mysql数据库出现QMYSQL driver not loaded的问题
QT += sql //在.pro文件里加入这一句 //包含头文件 #include <QDebug> #include <QSqlQuery> #include ...
- QSqlDatabase: QMYSQL driver not loaded
转载:KiteRunner24 在Qt 5.9中使用数据库连接时,弹出下面的错误: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: avail ...
- QMYSQL driver not loaded
QT5 连接 QMYSQL 数据库时出现错误:QMYSQL driver not loaded. 解决方法如图:(图中使用指令:ldd libqsqlmysql.so) 从结果图显示中:libmysq ...
- unbuntu14下Qt4.8 和MySQL连接问题 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE
使用 QSqlDatabase::addDatabase创建数据库时 会报错: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: availab ...
- Qt连接mysql数据库遇到QMYSQL driver not loaded
本文件向各位博友分享一下我在Qt开发过程中,连接mysql数据库时遇到的问题,以及解决的方法,希望对遇到同样问题的博友有所帮助. 工程运行环境:vs2015+Qt5.8 在开发过程中,编写数据库连接函 ...
- QT5.8连接Mysql提示QMYSQL driver not loaded
我们都知道在QT5.8系列里已经带了Mysql的dll文件 驱动的名字为“qsqlmysql.dll”和“qsqlmysqld.dll” 但是按照网上的各种教程和博客基本都是错的,只有个别人是对的. ...
- 请问-bash-4.1$ 出现故障的原理及解决办法?
请问如下登录环境故障的原理及解决办法? [root@ ~]# su - luoahong -bash-4.1$ -bash-4.1$ 解答: [luoahong@ ~]$ rm -rf /home/l ...
- IObit Driver Booster 无法更新驱动的解决办法
IObit Driver Booster 无法更新驱动的解决办法:依次打开软件中的 菜单-设置-网络-自定义代理设置-主机:填入210.101.131.231 端口:8080 最后点确定完成. 注意! ...
- Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解.内容包括::1 fail-fast简介2 fail-fast示例 ...
随机推荐
- Delphi 完全时尚手册之 Visual Style 篇
这里先说说两个概念:Theme(主题)和 Visual Style .Theme 最早出现在 Microsoft Plus! for Windows 95 中,是 Windows 中 Wallpape ...
- 我的Android进阶之旅------>Android图片处理(Matrix,ColorMatrix)
本文转载于:http://www.cnblogs.com/leon19870907/articles/1978065.html 在编程中有时候需要对图片做特殊的处理,比如将图片做出黑白的,或者老照片的 ...
- HDU - 1495 非常可乐 【BFS】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1495 思路 首先 如果可乐的体积 是奇数 那么是无解的 然后 如果能够得到两杯 都是一般容量的可乐 那 ...
- Delphi编写WebService体会
源:Delphi编写WebService体会 Dispatch: 派遣,分派 Invoke: 调用 Invokable: 可调用接口 TReomtable: WebService中自定义类都是继承自该 ...
- Android Weekly Notes Issue #316
July 1st, 2018 Android Weekly Issue #316 本期内容包含教你使用Kotlin通过Annotation Processor生成代码文件, JetPack中的Andr ...
- 《avascript 高级程序设计(第三版)》 ---第二章 在HTML中使用Javascript
本章主要讲解了,怎么在HTML中使用: 1.<script src=""></script> 属性:defer="defer" 表示脚本 ...
- BZOJ 1724 [Usaco2006 Nov]Fence Repair 切割木板:贪心 优先队列【合并果子】
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1724 题意: 你要将一块长木板切成n段,长度分别为a[i](长木板的长度 = ∑ a[i] ...
- redis持久化【转】
Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支持在服务器端计算集合的并,交和补集(diff ...
- 分享知识-快乐自己:微服务的注册与发现(基于Eureka)
1):微服务架构 服务提供者.服务消费者.服务发现组件这三者之间的关系: 各个微服务在启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息. 服务消费者可从服务发现组件查询服 ...
- [原创]Java给word中的table赋值
一.准备工作: 下载PageOffice for Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...