Windows下Qt5.15.2+MinGw64编译mysql驱动

导读

目前qt5.15.2版本不提供编译好的mysql驱动,所以你无法在qt程序中使用mysql,要想使用必须手动编译mysql驱动,下面说说编译步骤。

编译步骤

  • 下载mysql(已安装的请忽略)
    编译驱动需要用到mysql,下载链接:mysql下载,如下图:
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第1张图片
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第2张图片
    下载完之后,进行mysql 的安装程序,建议选择自定义安装,基本就是一直next即可。
    安装完之后如图,注意自定义安装这俩个建议选上!
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第3张图片
    可以运行一下WorkBench登录测试一下,出现如下说明安装成功了。
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第4张图片
  • 开始编译mysql驱动
  • 编译之前,你安装的qt必须包含源码目录(Src目录),编译驱动是基于这个目录进行的。没有安装的去qt官网下载(Source)或者通过qt在线安装工具,对你的qt添加Source组件
  • 准备工作做好之后,打开qt安装目录,进入D:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers (根据你自己的qt安装目录进行调整),在这个目录输入cmd打开命令行窗口。
  • 输入命令:
set path=D:\Qt\5.15.2\mingw81_64\bin;D:\Qt\Tools\mingw810_64\bin;%path%//设置qmake的环境变量。
  • 输入命令:
qmake -- MYSQL_INCDIR="D:/MySQL/include" MYSQL_LIBDIR="D:/MySQL/lib"
//开始编译。

(注意:上述路径都得换成自己的)
出现如下输出说明编译是成功的,也即MYSQL驱动那一行变成了yes
Windows下Qt5.15.2+MinGw64编译mysql驱动_第5张图片

  • 最后输入命令:mingw32-make sub-mysql mingw32-make install进行编译和安装。
    上述都做完之后,可以去如下目录查看生成的mysql驱动插件,出现如下两个文件说明编译成功了!
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第6张图片

mysql驱动测试

  • 经过第二个步骤编译之后,将上面最后生成的两个文件拷贝到自己Qt编译器的sqldrivers目录,如下所示:
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第7张图片
  • 将mysql的lib目录下的libmysql.dll复制到自己qt编译器的bin目录下,如下图所示:
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第8张图片
    Windows下Qt5.15.2+MinGw64编译mysql驱动_第9张图片
    3.打开qtCreator,新建console工程,在.pro文件中增加sql(QT += sql)
    在main.cpp文件中
#include <QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << QSqlDatabase::drivers();
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("sys");
    db.setUserName("你的mysql账户");
    db.setPassword("账户密码");
    bool ok = db.open();
    qDebug() << ok;
 - List item

    return a.exec();
}

运行如下:说明可以使用MySQL了,注意编译器需要使用上述编译过程中使用到的编译器。我这里是使用的minGw64
在这里插入图片描述
4. 一些可能的错误
有些人可能运行出现如下情况:
在这里插入图片描述
可能的原因是你的mysql的libmysql.dll没有复制到自己qt编译器的bin目录下。
复制了还是不行?:libmysql.dll本身是存在依赖的,可能你需要编译openssl库,再将这些库都添加到qt编译器的bin目录下才行。当你这一步也做了,应该不会出现问题了。有需要这个库的,下面评论私信~

你可能感兴趣的:(Qt与QML,qt5,mysql)