【转载】QT 连接 MySql 失败

QT 连接 MySql 失败

环境:Qt 5.12.2 32位,MySql 5.7.35 32位

当出现 QMYSQL driver not loaded 时,是数据库驱动问题。

原文链接:https://blog.csdn.net/m0_46355585/article/details/116783843

报错须知

D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\plugins\sqldrivers 目录下缺少驱动:
在这里插入图片描述

D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\bin 目录下缺少驱动:
在这里插入图片描述

解决办法:

方法一:
  • 直接将现成的驱动文件放入指定目录下(但要保证驱动文件符合你的环境)
  • qsqlmysql.dllqsqlmysqld.dll 拷贝到Qt的安装目录下。我的是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\plugins\sqldrivers
  • libmysql.dll复制到Qt的安装目录中。我的是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\bin
方法二:

先保证 Qt 和 MySql 的 位数相同,都是32位或者64位

  • 打开打开Qt安装路径下的源码 ,我的是:D:\software\Qt\Qt5.12.2\5.12.2\Src\qtbase\src\plugins\sqldrivers\mysql 下的mysql.pro

  • 然后修改 mysql.pro

    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 (x86)/MySQL/MySQL Server 5.7/include"
    #INCLUDEPATH += $$quote()
    
    #添加依赖的.lib文件
    LIBS += "C:/Program Files (x86)/MySQL/MySQL Server 5.7/lib/libmysql.lib"
    
    #生成你所需要的dll存放目录
    DESTDIR = $$PWD/lib/aa
    
  • 然后修改 qsqldriverbase.pro

    QT  = core core-private sql-private
    
    # For QMAKE_USE in the parent projects.
    #include($$shadowed($$PWD)/qtsqldrivers-config.pri)
    
    #更方便准确的找到qtsqldrivers-config.pri文件
    include(./configure.pri)
    
    PLUGIN_TYPE = sqldrivers
    load(qt_plugin)
    
    DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
    
  • 因为我的是 32位,所以选择:32位的选择MinWG32套件进行构建
    在这里插入图片描述

  • 构建成功后在 lib/aa 下 输出四个文件
    在这里插入图片描述

  • 然后将两个动态库文件拷贝到Qt的安装目录下。我的是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\plugins\sqldrivers

  • 让后将mysql中的 libmysql.dll 复制到 Qt的安装目录中。

    ​ 我的MySql路径是:C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib

    ​ 我的Qt 路径是:D:\software\Qt\Qt5.12.2\5.12.2\mingw73_32\bin

  • 这样就完成了。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值