QT操作MySql数据库出现QSqlDatabase: QMYSQL driver not loaded解决方法

1 篇文章 0 订阅

最近装了一个WAMP服务器,要用QT访问MySql数据库,代码如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qsqldatabase.h"
#include "qdebug.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("123456");
    bool ok = db.open();
    if (ok)
    {
        qDebug() << "连接数据库ok";
    }
    else
    {
        qDebug() << "连接数据库失败";
    }
    
}

出现错误:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

连接数据库失败

要解决这个问题,首先看在装QT时有没有装源文件,如果装了,在源文件目录下会有MySQL目录,我的是C:\Qt\Qt5.12.5\5.12.5\Src\qtbase\src\plugins\sqldrivers\mysql\,如果没装,请重新安装。

用Qt Creator打开 mysql.pro,  等待编译...

第二步:下载SQL编译库,

下载之前先确认自己安装的MySql版本是多少,并且要确定是32位的还是64位的,然后到https://downloads.mysql.com/archives/community/下载对应的版本,我的WAMP是64位的,版本是 5.6.17。

下载后解压:

我们要用到里面的include目录和Lib里面的库,接下来就是编译QT所需要的库:qsqlmysql.dll qsqlmysql.lib qsqlmysql.a这三个文件。

在mysql.pro里加三句代码:

INCLUDEPATH+=C:/Users/Administrator/Pictures/mysql-5.6.17-winx64/mysql-5.6.17-winx64/include/
LIBS+=C:/Users/Administrator/Pictures/mysql-5.6.17-winx64/mysql-5.6.17-winx64/lib/*.lib
DESTDIR = ../mysql/mysqlDll 这是编译目录 方便找DLL

由于我下的是64位 那就用64位编译器,如果你下的是32位就用32位编译器。MinGW和MSVC都行。

编译成功后,在对应目录下有编译好的文件,我用Release和Debug都编译了一次。

有了这些文件,接下来就是复制 文件,把编译好的复制到你对应的编译器目录下:

如果你是MSVC64编译的就把文件复制到:

C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\bin\   (文件libmysql.dll libmysql.lib libmysqld.dll libmysqld.lib 这是下载的文件)

 和

C:\Qt\Qt5.12.5\5.12.5\msvc2017_64\plugins\sqldrivers\目录下(libmysql.dll libmysql.lib libmysqld.dll libmysqld.lib 这是下载的文件 qsqlmysql.dll qsqlmysql.lib qsqlmysqld.dll qsqlmysqld.lib qsqlmysql.a qsqlmysqld.a 这些是编译的文件 )

 

如果你是有MinGW64编译的就复制到:

C:\Qt\Qt5.12.5\5.12.5\mingw73_64\bin\

C:\Qt\Qt5.12.5\5.12.5\mingw73_64\plugins\sqldrivers\目录下

 

这样,Qt就可以操作MySql了!

如果编译Release时需要main.moc文件, 这个文件在编译后文件目录:.moc/目录下,添加到项目中!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值