最简单的Qt连接MYSQL的方法
最简单的Qt连接MYSQL的方法
⭐ 当我试图在项目中连接本地的mysql时,反复出现:
QMYSQL driver not loaded
,显示没有成功加载mysql的驱动,在网上查询了很多教程和视频,大多为互相转载且老旧,耗费了大半天还是没有构建成功,通常的解决方法是在本地构建mysql驱动(通过安装qt时勾选的src选项里提供的对应源码构建),但是在编译过程中,有各种各样的bug,参考了很多文章,构建了很多次都没成功,因此有了这篇文章,依托大佬开源的GitHub项目,可以非常简便的连接,避免了很多弯路。
1.报错原因
Qt在某个版本后不在提供编译好的mysql驱动,只在src中提供了驱动源码,使用需要自行编译链接,报错信息如下:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
2.查询版本号
首先需要确定mysql和qt使用的编译器都为32或者64位(必须一致),其次通过qt的安装目录可以确定它的版本(例:D:\QT\5.14.2\mingw73_64,可知qt版本为5.14.2,采用的是mingw64位编译器),记住这个版本。
3.下载对应驱动
进入https://github.com/thecodemonkey86/qt_mysql_driver (这是由大佬提供的编译好的mysql驱动)
进入网页之后,点击右下角的 Releases
进入驱动下载页面。
在这个页面寻找对应自己版本号的驱动,图中红线勾画出的部分,分别为qt版本,编译器版本和编译器位数,需要在页面中找到对应自己版本的压缩包(当前页没有的可以点击下一页继续寻找),并点击下载。
4.添加驱动
下载并解压对应驱动后,会有以下文件。
接下来打开Qt安装目录下的bin文件夹(例:D:\QT\5.14.2\mingw73_64\bin),将libmysql.dll文件复制进该目录。
然后在打开Qt下编译器的plugin文件夹下的sqldrivers文件夹(例:D:\QT\5.14.2\mingw73_64\plugins\sqldrivers),将解压文件中的\debug\sqldrivers\qsqlmysql.dll文件,复制到该目录。
5.编译运行
提供在项目中使用如下代码,编译构建后,可以检验是否连接成功
db = QSqlDatabase::addDatabase("QMYSQL"); //加载mysql驱动
⭐ 注意:如果安装Qt时选择了不止一种编译器套件,在选择构建套件时,需要选择已经放入对应驱动的编译器,点击左下角的Debug可以指定编译器。
这是我的做的一些Qt小练手的项目,都已经在GitHub开源,其中包括和本文相关的链接数据库项目。
https://github.com/wwlww/QT-Small-Projects