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的...
  • gufengys
  • gufengys
  • 2017年03月11日 22:10
  • 2632

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

Qt5.5.1编译mysql数据库驱动 转载自: 本文针对5.5.1版本更新了下文件版本,和原文方法没区别 本机环境:     Win7x64     Qt5.5.1源码        (编译m...
  • u010746431
  • u010746431
  • 2016年01月28日 16:00
  • 4255

QSqlDatabase: QMYSQL driver not loaded问题解决方法

1.错误描述:有QMYSQL driver,但driver无法被加载 原环境: Qt Creator:5.8.0 for windows 64-bit(VS 2013) MySQL:wamp...
  • justenjoyitpy
  • justenjoyitpy
  • 2017年05月04日 09:45
  • 2769

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
  • 11580

Windows下Qt连接Mysql数据库的方法,解决QSqlDatabase: QMYSQL driver not loaded 问题

如果你时间紧迫,建议直接看这篇文章的最后“补充六”中提供的资源!        之前做毕业设计的时候曾经成功的完成过这个工作,可惜没有及时的记录下来。最近因为项目的需要,再一次需要做Qt和Mysql...
  • youhaipeng
  • youhaipeng
  • 2012年09月19日 19:36
  • 24055

QSqlDatabase: QMYSQL driver not loaded 解决方案

在Qt 5中使用数据库连接时,弹出下面的错误: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQL...
  • zhaobryant
  • zhaobryant
  • 2015年01月21日 17:31
  • 4287

QSqlDatabase: QMYSQL driver not loaded 解决方法

转自:点击打开原文链接 虽然已执行: sudo apt-get install libqt4-sql-mysql,但还是出现QSqlDatabase: QMYSQL driver not loade...
  • qustdjx
  • qustdjx
  • 2012年04月29日 09:42
  • 13081

Qt连接MySQL出现QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE 解决方法,先看下是否已经安装了lib...
  • e3399
  • e3399
  • 2012年05月29日 22:13
  • 11836

Qt连接MySQL提示“QSqlDatabase: QMYSQL driver not loaded”的解决办法

我使用的Qt版本是Qt5.7.1 msvc2015 64位版,实际上并没有使用MySQL,而是MariaDB,版本为10.2.6。当我运行Qt附带的样例“sqlbrowser”时,总会提示如下信息:Q...
  • imred
  • imred
  • 2017年06月26日 09:35
  • 1759

Qt连接MySQL出现QSqlDatabase: QMYSQL driver not loaded

转自:http://blog.csdn.net/e3399/article/details/7614348 QSqlDatabase: QMYSQL driver not loaded QSq...
  • deng_sai
  • deng_sai
  • 2015年03月27日 23:40
  • 1254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QMYSQL driver not loaded 的原理和解决办法
举报原因:
原因补充:

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