当前位置:   article > 正文

QT连接MySQL出现QMYSQL driver not loaded的解决方法_qt处理 连接mysql报 driver not loaded driver not loaded

qt处理 连接mysql报 driver not loaded driver not loaded 如何处理 csdn

问题描述

QT连接MySQL出现错误:QMYSQL driver not loaded ,QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
  • 1
  • 2

问题原因,无对应驱动

尝试但无效的方法,简述

  1. 仅保证QT编译器和MySQL位数一致(无效)
  2. 仅将MySQL安装目录下lib中的文件拷贝到QT安装目录下bin中(无效)

自述:初学QT的菜鸡,使用QT连接数据库一直搞不定,看了多种方法但都无法解决,糟心。磨蹭好几天后,终于找到有效的解决方法,遂记录之。

本文环境

  1. windows11
  2. QT 5.14.2,编译器64位MinGW,且带源码安装。安装组件时,勾选Sources。https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe 在这里插入图片描述
  3. 64位MySQL 8.0.37。(保证MySQL与QT编译器位数须一致,不然报错)https://cdn.mysql.com//Downloads/MySQLInstaller/mysql-installer-community-8.0.37.0.msi

方法

  1. QT编译mysql

    注意:QT须带源码安装,若无源码则重装。或者在Qt安装目录里打开MaintenanceTool.exe,“添加或者更新组件即可”,若出现“QT 此操作至少需要一个处于启用状态的有效资料档案库”,请同时参考如下链接:QT 此操作至少需要一个处于启用状态的有效资料档案库QT更新组件时报至少需要一个有效且已启用的储存库

1.1 去QT安装目录,找到对应文件夹:
D:\Qt\Qt5.14.2\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql

在这里插入图片描述

1.2 双击打开mysql.pro,并添加如下代码。C:/Program Files/MySQL/MySQL Server 8.0为MySQL的安装路径

LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql
INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DESTDIR = ../mysql/lib/ #设置编译后文件的位置
  • 1
  • 2
  • 3
  • 4

1.3 注释掉QMAKE_USE += mysql。 否则编译后出错:Library ‘mysql’ is not defined。
在这里插入图片描述

修改后的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)

#INCLUDEPATH += C:/Program Files/MySQL/MySQL Server 8.0/include/
#LIBS += C:/Program Files/MySQL/MySQL Server 8.0/lib/libmysql.lib
LIBS += -L $$quote(C:/Program Files/MySQL/MySQL Server 8.0/lib) -llibmysql
INCLUDEPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DEPENDPATH += $$quote(C:/Program Files/MySQL/MySQL Server 8.0/include)
DESTDIR = ../mysql/lib/

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

1.4 编译后出错:Cannot read D:/qtsqldrivers-config.pri: No such file or directory
在这里插入图片描述

解决:在项目中找到qsqldriverbase.pri文件并打开,注释掉include($$shadowed($$PWD)/qtsqldrivers-config.pri),并添加include(./configure.pri)
在这里插入图片描述

1.5 编译(构建)

注意要选择对应的编译器。比如本文用64位MinGW编译器。
在这里插入图片描述
出现下框,关闭或取消即可
在这里插入图片描述
编译完成后,在mysql目录下(DESTDIR = ../mysql/lib/),打开lib文件夹,将qsqlmysql.dllqsqlmysql.dll.debug 文件移动到`D:\Qt\Qt5.14.2\5.14.2\mingw73_64\plugins\sqldrivers文件夹下。
在这里插入图片描述

  1. 移动libmysql.dll

将MySQL安装目录C:\Program Files\MySQL\MySQL Server 8.0\lib下的libmysql.dll

在这里插入图片描述

移动到QT安装目录D:\Qt\Qt5.14.2\5.14.2\mingw73_64\bin中。

在这里插入图片描述
至此,搞定。
在这里插入图片描述

参考

  1. b站-QT无法连接MySql
  2. 博客园-QT连接SQL报错
  3. 知乎-Qt零基础系列10:windows 环境下如何添加MYSQL数据库驱动(补充内容)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/711369
推荐阅读
相关标签
  

闽ICP备14008679号