Cononico

2016年12月1日

Qt 学习笔记>

(驱动文件下载)解决Qt5.7连接mysql时出现 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL QMYSQL3 QODBC问题

本文主要参考这个博文http://blog.csdn.net/tenlee/article/details/43614241的内容,不过我在下面直接把自己编译好的驱动共享出来了。

————————————————————————————————————————————

在windows的Qt5.7操作腾讯云上的mysql数据库的时候出现了

使用到数据库部分的代码是这样的:

2016-12-01-22-10-27

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL QMYSQL3 QODBC

错误提示的意思是缺少mysql的驱动,但是下面一句又说可用的驱动有QMYSQL,到qt安装目录下面的sql驱动文件夹下发现也确实是有驱动文件的

2016-12-01-22-13-02

那这里问题出在哪里呢,根据网上的解决方法应该是qt下还少了libmysql.dll文件,解决方法是将MySQL\MySQL Server 5.7\lib下的libmysql.dll拷贝至Qt\5.3\msvc2013_64_opengl\bin下即可。

但是我进行了这样的操作还是会报错,根据网上的说法可能是因为生成qt里的驱动编译的时候是要用到libmysql.dll同目录下的libmysql.lib这个文件的,所以可能版本之间不对应,所以解决方法也很简单,就是按着http://blog.csdn.net/tenlee/article/details/43614241这里的方法再依赖自己电脑上的libmysql.lib文件重新编译生成驱动然后移到对应的目录下。

既然需要版本对应的文件我想直接把我编译好的驱动和libmysql.dll、libmysql.lib共享出来不应该就可以了嘛。

我的编译好的相关文件:qt5.7mysql驱动及mysql.dll.zip

根据网上所有看到的解决方法我将这些文件放在了这些位置就可以用了,可以参考一下:

  1. 将qsqlmysql.dll、qsqlmysqld.dll放到D:\Qt\Qt5.7.0\5.7\mingw53_32\plugins\sqldrivers目录下
  2. 将libmysql.dll、libmysql.lib放到D:\Qt\Qt5.7.0\5.7\mingw53_32\bin目录下
  3. 将libmysql.dll放到C:\Windows目录下
  4. 将qsqlmysql.dll、qsqlmysqld.dll放到D:\Qt\Qt5.7.0\Tools\mingw530_32\opt\bin(这一步也是在一个解决方法里看到的我也照做了也不知道管不管用)

来一发吐槽