Driver not loaded之记录Qt访问MySql的解决经历

        对于这个问题的本质原因,我也搞不明白,所以记录的方法不一定对所有人行之有效。我的目的很简单,就是把数据库用起来,经过查找网上资料,最终把数据库跑起来了。因此记录如下:

        1,出现这个问题是缺少相关的库文件;

        2,其次Qt的编译工具需要和MySql的位数相同;【x64--x64】

        3,因为我的MySQL是x64;【select @@version_compile_machine】,所以重新下载Qt镜像安装:https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe

        4,因为需要重新编译MySQl的库文件,所以安装Qt的时候需要勾选Source,并且勾选mingw64和mingw32;【编译库文件mingw64】

        5,直接打开Qt安装目录中的工程文件:Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql\mysql.pro。在此之前需要把sqldrivers拷贝进行备份,以防修改后无法还原。【sqldrivers_backup2024.4.2】

        6,修改pro文件,为编译做准备,注意选择MinGW 64-bit编译:

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
#这个主要是添加.h依赖文件使用
INCLUDEPATH+="C:\Program Files\MySQL\MySQL Server 8.0\include"

#添加依赖的.lib文件
LIBS+="C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"

#生成你所需要的dll存放目录
DESTDIR="C:\Users\xxxx\Desktop\test"

        7,编译后运行后出现下面的界面,我以为是哪里搞错了,实际上库文件编译已经成功了。在桌面上test目录可以看到dll文件。

        8,将编译产生的.dll和.a文件拷贝到:\Qt\5.14.2\mingw73_64\plugins\sqldrivers中,运行原来Qt的数据库工程文件,访问MySql数据库正常。

     

注意事项:

        1,确保数据库工作正常;【我使用datagrip软件操作数据库正常,使用MySQL的命令行操作正常】

        2,测试数据库的代码如下:

          正常打印: ("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7");

    //打印Qt支持的数据库
    qDebug()<<QSqlDatabase::drivers();
    QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");
    //连接数据库
    db.setHostName("localhost");
    db.setUserName("root");
    db.setPassword("123456");
    db.setPort(3306);
    db.setDatabaseName("user_database");
    //打卡数据库
    if(!db.open())
    {
        QMessageBox::warning(this,"错误",db.lastError().text());
    }

相关推荐

  1. 解决使用ip来访问MySQL报错问题

    2024-04-05 11:58:02       59 阅读
  2. Qt查询mysql信息解释

    2024-04-05 11:58:02       37 阅读
  3. Qt面试经验

    2024-04-05 11:58:02       60 阅读
  4. QT 常见报错解决记录

    2024-04-05 11:58:02       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 11:58:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 11:58:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 11:58:02       82 阅读
  4. Python语言-面向对象

    2024-04-05 11:58:02       91 阅读

热门阅读

  1. P8597 [蓝桥杯 2013 省 B] 翻硬币

    2024-04-05 11:58:02       33 阅读
  2. 用栈实现队列

    2024-04-05 11:58:02       39 阅读
  3. SQL Server的详细使用教程

    2024-04-05 11:58:02       37 阅读
  4. C#(C Sharp)学习笔记_Enum枚举类型【十三】

    2024-04-05 11:58:02       34 阅读
  5. ultraedit软件使用技巧

    2024-04-05 11:58:02       31 阅读
  6. 达梦体系结构:数据库文件

    2024-04-05 11:58:02       42 阅读
  7. ChatGPT 之 PPT 大师

    2024-04-05 11:58:02       52 阅读
  8. Swagger 简单上

    2024-04-05 11:58:02       37 阅读
  9. 每日一题 六十九期 洛谷 回文日期

    2024-04-05 11:58:02       39 阅读