QT连接MySql数据库失败,编译驱动问题,最详细解决办法

这篇具有很好参考价值的文章主要介绍了QT连接MySql数据库失败,编译驱动问题,最详细解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

各位读者你们好🔥


此篇是本专栏的第一篇,本专栏专门收录在学习过程中遇到的环境配置、软件问题等开发环境方面的问题。🚀🚀🚀


刚刚转阴就迫不及待的赶紧写一篇博客来解决一直落下的一个问题:

关于QT和MySql数据库的连接问题😷(在本人经过整整三天的无限踩坑之下,下载又卸载,下载又卸载得出的最完整的解决办法)




问题原因

同时安装了Qt和MySQL,但是却访问不了MySQL总体分为以下2个原因:

①无QMYSQL驱动

Qt目录里缺失了和Mysql的连接插件qsqlmysql.dll。

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QODBC QODBC3

②有QMYSQL驱动但仍然不能访问

Qt目录里和Mysql的连接插件qsqlmysql.dll已经老旧。

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITEQMYSQL QMYSQL3QODBC QODBC3



其实2个原因的解决方案是一样的,根本原因是:QMYSQL驱动加载失败

那么,这里就有一个问题:没有QMYSQL驱动的情况加载失败可以理解,为什么有QMYSQL驱动也会加载失败?

答案:因为Qt和MySQL是来自不同企业的产品,由于MySQL版本的修改和更新,Qt官方默认提供的QMYSQL驱动已经过旧,无法适用新版本的MySQL,也可能是安装的Qt版本过新,MySQL版本过旧的情况,但通常软件都是向下兼容的,因此前者的可能性要更高一些。但是不管是前者还是后者,原因是一样的:QMYSQL驱动和当前的MySQL版本不匹配。


怎么解决这个问题呢?MySQL的版本修改和更新会同时更新相应的“库文件”,

我们只需要拿当前安装的MySQL中的这个“库文件”来重新编译生成一下QMYSQL驱动文件,就可以正常访问MySQL了。



解决问题前


QT的安装注意

个人推荐版本:QT5.15.2


第一:驱动问题


现在qt6的版本基本不提供mysql的驱动,而且也没有pro项目让你生成驱动的dll文件,

想要生成驱动文件,官方的方法是在cmake中生成,过程过于复杂,反正我没有成功。

待会需要介绍的方法:主要重点在于不要下载qt6的版本因为它没有pro项目让你生成驱动的dll文件,我们的教程也就进行不下去了



第二:编译器问题


QT编辑器主要就有msvc的和mingw的,这两个编辑器有什么区别读者自行查阅相关知识

你需要用那种编译器,你安装的时候记得勾选上对应编译器,之后你就用哪个,两个都选上也可以,之后你就会有两个编译器文件夹

我自己两个编译器都有选择:

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

到QT5.15.2才开始有MSVC2019的编辑器,这里如果某些人考虑以后使用自己的新版vs开发QT程序,用新的msvc2019编辑器肯定是没问题的,如果是2017,您的vs如果太新可能不太支持

mingw编译器就不用说了,想用哪个用哪个



后面编译qmysql文件,两个不同的编译器有点小区别,但必须分开,对照你自己使用的编译器操作🎈🎈🎈



第三:安装方式问题


Qt5.14.2是最后提供二进制安装包的版本,后面的版本都需要在线安装。(我是用的在线安装,在线安装的界面也更帅)

我自己勾选的插件:

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

在安装QT的时候,记得勾选Source选项,这是QT的源码,我们后面要通过Qt里的src源码中的mysql源码来编译出qmysql.dll文件



第四:安装路径问题

1.Qt编译程序的时候是以空格来解析“编译指令”中的字符串,指定路径中包含空格的时候,会被解析成多个字符串,也就是说,只要保证:编译的时候指定的路径中不包含空格就可以了。🤗🤗🤗

2.路径绝对不能含有中文,包括以后的构建目录都不能含有中文,否则在以后构建运行项目的时候会报编译错误。

QT连接MySql数据库失败,编译驱动问题,最详细解决办法



QT版本选择参考文章

【QT-版本】QT版本选择问题_甲壳剑齿鸟的博客-CSDN博客_qt版本

具体的QT安装步骤,搜索你想要的qt版本对应下载教程,不过本质上都是一样的,选择你需要的就好🎄🎄🎄





MySql的安装注意

之前说过:MySQL的版本修改和更新会同时更新相应的“库文件”,QT官方是对照着MySql来提供的QMYSQL默认驱动,所以,MySQL是老大,QT跟着MySQL走,MySQL版本下载任意一版本就好,反正基本上驱动软件都是对不上的,都需要自己配置一遍😂😂




MySql版本选择参考文章

我TM究竟应该选哪个版本的MySQL?!_数据库架构师的博客-CSDN博客_mysql 大数据 哪个版本

具体的MySql安装步骤,😪😪😪一样自行对应版本搜索教程





注意

首先,需要确定一件至关重要的事:检查Qt和MySQL的位数,如果不一致,请卸载其中一个重新安装位数一致的版本。推荐都安装64位的,毕竟新的对以后做点什么事更加方便

只有Qt和MySQL的位数一样,才能重新编译QMYSQL驱动。

我的搭配是QT5.15.2+MySql8.0.31,都是win64位的



解决问题

首先可以先看看自己的Qt目录下有没有连接插件qsqlmysql.dll,文件夹位置: E:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers

(注意:这里我是基于msvc编译器的操作,如果是mingw则:E:\Qt\5.15.2\mingw81_64\plugins\sqldrivers)


如果没有那我们就可以开始之前说的通过Qt里的src源码中的mysql源码来编译出qmysql.dll文件。有多半也是个旧的,不匹配,可以去找个数据库测试连接代码试一试😂😂😂



这里分为Mingw64-bit的和MSVC201964-bit两种编译器,区别不大,请读者自行替代重复部分😛😛😛

请选择好自己对应的编译器后再查看对应的方法进行编译哦~

QT连接MySql数据库失败,编译驱动问题,最详细解决办法


使用Qt 5.15.2 MinGW 64-bit 编译


一、打开Qt的安装目录下:E:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql双击打开 .pro 文件

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

INCLUDEPATH +=E:/DateBase/Mysql/mysql-5.7.29-winx64/include/  # 添加你自己的mysql安装目录下的include文件夹
LIBS += E:/DateBase/Mysql/mysql-5.7.29-winx64/lib/libmysql.lib # 添加你的mysql安装目录下的lib文件夹libmysql.lib文件
DESTDIR = ../mysql/mysqlDll    # 设置编译好的qmysql.dll放置的目录,不然你可能不知道会生成在哪。


注意:1.一定要用双引号引住MySql头文件和库文件这两个路径,不然后面会出现无法识别到mysql.h的错误



二、进行构建,就是界面左下角的锤子,这时会出现如下的两个错误:

(1)Cannot read H:/qtsqldrivers-config.pri: No such file or directory

出现此问题是因为没有这样的文件,但是可以在目录E:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers下找到configure.pri这个文件,那么我们就把原来需要qtsqldrivers-config.pri的地方注释掉,改成configure.pri:

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

打开qsqldriverbase.pri文件,将第四行注释掉,即#include($ s h a d o w e d ( shadowed( shadowed( $PWD)/qtsqldrivers-config.pri),然后添加include(./configure.pri),保存,完成。


(2)Project ERROR: Library ‘mysql’ is not defined.

这个问题其实我们已经解决。

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

在qt左侧栏中双击打开mysql.pro,将第六行注释掉,这样:#QMAKE_USE += mysql。


😆😆😆重新构建:已经没有看见报错了😆😆😆



三、构建好后会在我们之前设置好的目录位置DESTDIR = ../mysql/mysqlDll放置我们编译好后生成的文件夹mysqlDll


使用Qt 5.15.2 MinGW 64-bit构建,则该目录下(E:\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql\mysqlDll)会生成

qsqlmysql.dll libqslmysql.a qsqlmysql.dll.debug三个文件

将生成的这三个文件复制到 Qt对应的编译器的安装目录下 E:\Qt\5.15.2\mingw81_64\plugins\sqldrivers

在mysql安装目录的lib目录中,找到libmysql.dll,拷贝到对应QT编译器的D:\Qt5.15.2\5.15.2\mingw81_64\bin目录下


至此,MinGW 的 MYSQL数据库安装成功🎈🎈🎈



使用Qt 5.15.2MSVC2019 64-bit 编译

先将MinGW编译时 在E盘下生成的 mysqlDll 文件夹删掉


一、打开 msvc-version.conf

用VScode或者VS都可以, 路径 E:\Qt\5.15.2\msvc2019_64\mkspecs\common

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

添加 QMAKE_MSC_VER=1900 到首行 点击保存即可


二、 重新打开 D:\Qt5.15.2\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql 路径下的 .pro 文件

点击重新构建(这里构建的基础记得改为msvc编译器)


在E盘下会重新生成 mysqlDll 文件夹,其中会生成qsqlmysql.dllqsqlmysqld.dll两个文件

将生成的这两个文件复制到 Qt对应的编译器的安装目录下 E:\Qt\5.15.2\msvc2019_64\plugins\sqldrivers

在mysql安装目录的lib目录中,找到libmysql.dll,拷贝到对应QT编译器的E:\Qt\5.15.2\msvc2019_64\bin目录下


至此,MSVC2019 的 MYSQL数据库安装成功🎉🎉🎉


其它个例问题:


解决QSqlDatabase:QMYSQL driver not loaded


1.错误提示:

QSqlDatabase:QMYSQL driver not loaded

QSqlDatabase:available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3 QODBC QODBC3

QPSQL QPSQL7

2.解决方法:

将MySQL安装的目录下的bin路径添加到系统的环境变量。 (如何添加环境变量请自行查阅)



最近的期末程序设计需要用到QT和MySql,花了我三天的时间,也踩了不少的坑。特地写下此教程给有需要帮助的人,如果有错误的地方尽请提出来。

如果参考资料的博主看到有侵权行为,请联系我,我将删除。🧢🧢🧢


附上参考文章:

QT5.15.2连接到MySQL 8.0.25

Qt连接MySql驱动加载失败问题解决方法


行文至此,落笔为终。文末搁笔,思绪驳杂。只道谢不道别。早晚复相逢,且祝诸君平安喜乐,万事顺意。

QT连接MySql数据库失败,编译驱动问题,最详细解决办法文章来源地址https://www.toymoban.com/news/detail-450124.html

到了这里,关于QT连接MySql数据库失败,编译驱动问题,最详细解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt 无法连接MySQL数据库

    Qt 5.15及之后版本缺少mysql驱动:qsqlmysql.dll、qsqlmysqld.dll 下载对应版本驱动:https://github.com/thecodemonkey86/qt_mysql_driver/releases?page=2 拷贝至Qt安装路径下,例如 Qt5.15.25.15.2msvc2019_64pluginssqldrivers 根据mysql版本下载对应mysql压缩包https://downloads.mysql.com/archives/community/ 找到libmysql.dll、

    2024年04月12日
    浏览(64)
  • MySQL运维实战(3.2) 常见数据库连接失败问题排查

    作者:俊达 我们经常会遇到一些数据库连接失败或访问报错的问题。收集并分析具体的报错信息,可以帮助我们迅速定位问题。 1、客户端到服务端的网络是否畅通,服务端端口是否能连通。 使用ping、telnet等工具探测服务端的端口是否能访问。 如果端口不通,要先排除网络

    2024年01月21日
    浏览(64)
  • Qt 添加MySQL驱动教程 以及 操作数据库(增删查改)

    前言: 使用MySQL数据库前我们必须添加MySQL驱动,有了驱动我们才能连接数据库,连接数据库成功后才能操作数据库(增删查改)。 Qt 添加MySQL驱动教程 如下(本人亲测成功版): https://download.csdn.net/download/qq_42432673/88093467 在数据库中创建表,表结构如下: 现在驱动已经引入

    2024年02月15日
    浏览(56)
  • QT连接Mysql数据库(详细成功版)

    QT连接Mysql数据库步骤相对比较麻烦,因此写了篇文章将详细过程呈现给大家,欢迎大家来评论区指导提问。 示例代码: (1)在.pro文件中添加下列代码: (2)在mainwindow.h文件中添加下列头文件:  (3)在main.cpp文件中添加下列代码: 运行代码,如果连接Mysql成功则输出下面

    2024年01月16日
    浏览(56)
  • ASP.NET之 用Mysql驱动连接数据库

    前言:上一节已经用VisualStudio2019成功创建和运行了ASP项目( https://mp.csdn.net/mp_blog/creation/editor/129413215 ),下面将进行数据库的连接 一,下载驱动库,根JSP一样需要一个Mysql驱动包来支持.NET语言。官网下载链接: https://www.mysql.com/products/connector/   二,安装驱动包  选择自定义

    2024年02月02日
    浏览(39)
  • (java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver)IDEA中连接Oracle数据库失败,缺少驱动

    该问题出现在用idea连接Oracle数据库的时候,代码都写好了但是发现连不上Oracle。 (或者是能连Oracle,但是只能连一半。。。) 首先要保证自己的Oracle数据库是启动了的噢。 运行代码时,也就是这行代码会一直报错: 连接oracle数据库时,一直报错找不到驱动,后来发现自己

    2024年02月04日
    浏览(60)
  • Qt连接MySQL数据库最详细的教程

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 原文链接:https://blog.csdn.net/joey_ro/article/details/105411135 被Qt连接数据库折磨了三天之后终于连接成功了,记录一下希望对看到的人有所帮助。 当然要在.pro文件中添加一行引入 如果显示: 那么恭喜你太幸

    2024年01月21日
    浏览(48)
  • QT实现连接MySQL数据库以及查询等操作

    功能包含数据库的增删改查和界面的显示,因为没有用.ui文件所以控件的位置都是手动设置的,写的有点费劲 首先打开Navicat,新建一个名字为bak_db的数据库,然后新建查询导入下面的sql语句: 然后刷新显示表已经创建好了,接下来就开始进行操作了: 文件结构 源码在我的

    2024年02月04日
    浏览(66)
  • Qt连接MySQL数据库(保姆级成功版教程)

    VIP通道可以关注我,私信我,直接给两个动态库,直接起飞。 1、安装Qt时勾选sources 2、配置path环境变量 ① 此电脑-属性-高级系统设置-环境变量 ② 双击path-右上角新建 ③把这两个路径添加进去,最后确定 3、编译mysql驱动(在Qt打开mysql.pro文件) 1)在这条路径中D:QT5.14.25.1

    2024年02月04日
    浏览(45)
  • MySQL数据库连接失败,报错:ERROR 1040 (HY000): Too many connections

    MySQL数据库连接失败,报错:ERROR 1040 (HY000): Too many connections 连接MySQL突然出现“ERROR 1040 (HY000): Too many connections”。根据字面意思,应该是数据库的终端太多,下面修改mysql的配置文件解决。 MySQL默认连接数是151 临时配置 如果在生产环境数据库出现了最大连接数建议使用临时

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包