QT:MYSQL driver not loaded解决方法

0、参考(按对本人帮助从高到低排列)

Qt5.14.1 如何编译和使用mysql和mariadb数据库驱动

(15条消息) QMYSQL driver not loaded 的原理和解决办法_m15814478834的专栏-CSDN博客

(15条消息) 关于windows下Qt报告“QMYSQL driver not loaded”的解决办法_ac_blood的博客-CSDN博客

1、原因

缺少MySQL数据库驱动(即Driver)MySQL相关库

1.1、是否缺少Driver?

假设我们要用MSVC2017运行数据库相关操作:

  1. 转到QT安装目录下MSVC2017运行环境的文件夹下,比如在我的电脑上是E:\Qt\5.14.2\msvc2017_64
  2. 进入plugins\sqldrivers目录下,所以Driver所在的完整目录是E:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers
  3. 检查这个文件夹下是否有 qsqlmysql.dll 与 qsqlmysqld.dll两个文件,就像下边这样
  4. 如果没有这两个文件,就说明缺少MySQL driver。 

1.2、是否缺少MySQL相关库?

检查E:\Qt\5.14.2\msvc2017_64\lib目录下,看是否有libmysql.dlllibmysql.lib两个文件,如果没有,就说明缺少MySQL相关库。

 

 

2、解决方法

2.1、缺少MySQL相关库:libmysql.dll 与 libmysql.lib

  1. 下载MySQL(注意32位、64位一定要正确),转到下载好的MySQL目录下的lib目录中:D:\MySQL\lib
  2. 找到libmysql.dlllibmysql.lib两个文件,复制粘贴到1.2中所说的目录E:\Qt\5.14.2\msvc2017_64\lib目录下,即可解决。

2.2、缺少MySQL Driver:qsqlmysql.dll qsqlmysqld.dll

这个解决比较复杂,大家出问题也主要是这个问题。

  1. 转到Qt目录下的 "E:\Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql"目录中,大概长下边这样:

     

     

  2. 在Qt Creator中打开该目录下的mysql.pro,相当于打开这个mysql项目,进入mysql.pro下:
    #mysql.pro
    
    TARGET = qsqlmysql
    HEADERS += $$PWD/qsql_mysql_p.h
    SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    
    
    PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
    
    OTHER_FILES += mysql.json
    
    QMAKE_USE += mysql
    
    include(../qsqldriverbase.pri)

     

  3. 修改这个项目文件,添加三句话、注释一句话:
    INCLUDEPATH += "D:\MySQL\include"
    LIBS+="D:\MySQL\lib\libmysql.lib"
    DESTDIR = ../mysql/lib
    #QMAKE_USE += mysql

    其中第一行中的路径,就是MySQL中include目录的路径;第二行中的路径,就是2.1中所说的MySQL库的路径;第三行是输出driver到哪个文件夹下;

  4. 项目中取消勾选Shadow build
  5. 构建项目
  6. 之后就可以在lib目录(E:\Qt\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql\lib)下找到驱动文件qsqlmysql.dll  与 qsqlmysqld.dll

  7. 把这两个文件复制到1.1中所说的目录E:\Qt\5.14.2\msvc2017_64\plugins\sqldrivers下;
  8. 完事!
posted @ 2021-06-20 22:18  ShineLe  阅读(6430)  评论(0编辑  收藏  举报