QMYSQL driver not loaded 的原理和解决办法

原创 2015年11月18日 08:53:10

最近使用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.必须配套使用,配套使用,配套使用.

相关文章推荐

关于windows下Qt报告“QMYSQL driver not loaded”的解决办法

先说明一句,博主这个帖子的解决办法是用MariaDB试验的,其实跟mysql是一回事,所以帖子里都说的是mysql如何如何,请大家理解。 首先,出现这个问题有三种可能: 1.qt找不到你的mysql的...

Qt5.5连接mysql数据库提示QMYSQL driver not loaded

Qt5.5.1编译mysql数据库驱动 转载自: 本文针对5.5.1版本更新了下文件版本,和原文方法没区别 本机环境:     Win7x64     Qt5.5.1源码        (编译m...

QSqlDatabase: QMYSQL driver not loaded 解决方案

在Qt 5中使用数据库连接时,弹出下面的错误: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQL...

Qt5.2.1中解决QSqlDatabase:QMySQL driver not loaded

电脑装的是qt-opensource-windows-x86-mingw48_opengl-5.2.1(32位) MYSQL装的是64位的,把D:\MySQL5.6\lib下面的libmysql.d...

Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded but available

Qt 连接MySQL驱动 出现的问题, QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE...
  • tenlee
  • tenlee
  • 2015年02月07日 22:54
  • 10328

Qt windows qmysql Driver not loaded

使用Qt访问mysql数据库出现以下问题, 代码:
  • tujiaw
  • tujiaw
  • 2014年05月24日 12:41
  • 3323

windows下QMYSQL driver not loaded的解决方案

环境:win7 64 位系统,qt5.4 32位 因为qt5.4已经编译好QMysql驱动了,具体可以查看D:\Qt\Qt5.4.1\5.4\mingw491_32\plugins\sqldrive...

关于MySql在调试过程中出现Driver not loaded Driver not loaded的问题的解决办法

问题描述: 在调试QT程序的时候出现以下图中所示问题,由QString str = db.lastError().text().toLocal8Bit(); 得到。导致数据库一直连接不上。 解...

终于编译好了qt的oracle驱动QOCI,连接driver not loaded解决方法

我想你和我一样,照着

Qt5.4下连接Mysql,QSqlDatabase: QMYSQL driver not loaded,QSqlDatabase: available drivers: QSQLITE QMYSQL

首先说明一点,本人对于QT是菜鸟一枚,这次解决了这个问题也算是糊里糊涂,在此分享自己的经历,希望能有所帮助。 这个问题真是让我纠结了好久,首先在Ubuntu14.04 LTS下实验,安装的qt5,也安...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QMYSQL driver not loaded 的原理和解决办法
举报原因:
原因补充:

(最多只允许输入30个字)