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.dll与libmysql.lib两个文件,如果没有,就说明缺少MySQL相关库。

2、解决方法

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

  1. 下载MySQL(注意32位、64位一定要正确),转到下载好的MySQL目录下的lib目录中:D:\MySQL\lib;
  2. 找到libmysql.dll与libmysql.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. 完事!

最新文章

  1. CSS属性小结之--半透明处理
  2. C#中对象,字符串,dataTable、DataReader、DataSet,对象集合转换成Json字符串方法。
  3. ---bind 配置
  4. SDR 研究
  5. glReadPixels函数
  6. Windows 下如何设置 只允许固定IP远程访问
  7. SQL 学习与工作日常:语句积累
  8. 将Cent0S 7的网卡名称eno16777736改为eth0
  9. Git学习04 --分支管理
  10. RDPwrap: win10 家庭版开通远程桌面服务
  11. RTC子系统
  12. UML序列图参考资料
  13. day 08文件与字符编码
  14. GUI设计和UI设计有什么区别?
  15. [C++]指针与多级指针(图解)
  16. shell 的 export命令
  17. 11 Go 1.11 Release Notes
  18. [Big Data] Week4B (Basic)
  19. Xcode8的调试技能Memory Graph 实战解决闭包引用循环问题
  20. Django基础模板案例

热门文章

  1. 磁盘sda,hda,sda1,并行,串行
  2. python 小兵(6)函数根据问题详解
  3. NumPy 教程目录
  4. PriorityQueue的用法和底层实现原理
  5. HTML 5的革新——语义化标签
  6. 什么是Autolayout
  7. kebernet--新手填坑
  8. Loadrunner 11 中的Java Vuser
  9. 关于viewControllers之间的传值方式
  10. 解压命令tar zxvf中zxvf分别是什么意思