【QT连接Mysql时报错:QSqlDatabase: QMYSQL driver not loaded。解决方案(亲测成功)】

1 篇文章 0 订阅

1、使用Qt 5 连接Mysql数据库时,出现下面错误。

 我们可以看到这里有Mysql的驱动,只是Mysql的驱动并没有加载成功。一般这种错误分为两种情况:

一、就是缺少Mysql驱动

       我们进入到Qt安装路径中,我的路径为D:\Qt\Qt5.4.2\5.4\mingw491_32\plugins\sqldrivers

这里有就说明有驱动,如果没有的话需要把qsqlmysql.dll拷贝到这个目录下,如果找不到这些驱动的话就可能需要去编译源码了,生成这些驱动,源码路径:\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro,编译好,放到...plugins\sqldrivers路径下即可。

二、有驱动但是缺少库

        找到Mysql的安装路径(C:\Program Files\MySQL\MySQL Server 5.7\lib) 把libmysql.lib拷贝到\Qt5.4.2\5.4\mingw491_32\bin这个路径下,然后重启QT。

 三、如果上面两个步骤都没问题的话就要考虑QT跟Mysql的位数是否一样。

       Mysql查看位数:mysql --version

                 

这里可以看到Mysql的是64位的,但是我的QT是32位的,这就可能导致了libmysql.lib和QT套件位数不一样。 导致驱动加载不成功。

四、解决方法

        卸载QT,前往官网(Index of /archive/qt/)下载安装包,我这里选择的是这个版本

下载之后双击打开exe安装,傻瓜式安装即可,如果需要注册的话你注册就好了,最后一定要注意,一定要注意! 

要记得把这两个勾起来,然后等待安装完成,等待过程有点久还需耐心等待。 安装完成后就可以把libmysql.lib文件拷贝到\Qt5.4.2\5.4\mingw491_32\bin这个路径下(具体的路径根据你们新安装QT的路径),如果找不到这个文件你们可以用我的http://链接:https://pan.baidu.com/s/1dA9pMc1m5PYfNjHGhD1g9A 

提取码:kosv

五、测试

        新建一个.h文件,记得在main.cpp中调用。最后祝大家成功!!

#ifndef SQLCONNECT
#define SQLCONNECT
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QSqlError>
static bool connent()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  //连接的MYSQL的数据库驱动
        db.setHostName("localhost");         //主机名
        db.setPort(3306);                    //端口
        db.setDatabaseName("******");          //数据库名
        db.setUserName("****");              //用户名
        db.setPassword("******");            //密码
        db.open();
        //测试连接
        if(!db.open())
        {
            qDebug() << "不能连接";
            qDebug()<<db.lastError().text();
        }
        else
        {
             qDebug() << "连接成功";
        }
        db.close();
}
#endif // SQLCONNECT

  • 43
    点赞
  • 168
    收藏
    觉得还不错? 一键收藏
  • 18
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值