Qt5连接Mysql解决方案

Qt5.14.2连接Mysql教程——Windows平台

大家好。
我们都知道,Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架,是个人或者小组开发客户端的一个好选择。
有了图形界面,就需要与数据库进行交互。Qt内置有几种数据库的驱动,但是作为个人而言,我们使用最多的可能是Mysql。
很遗憾,新版本的Qt不再自动配置Mysql的dll文件,大家可能已经百度或者Google过很多的教程,但是可能还是没有找到合适的解决方案。
如果你还想在你的项目中搭配使用Web项目,那么PHP+Mysql+Qt将是一个很好的选择。今天跟大家分享一下Qt5.14.2版本连接Mysql数据库的解决方案

棘手原因

Qt5最新的几个版本都不再自动配置Mysql驱动,大家可以进入Qt安装目录下的Mingw或者Msvc环境文件夹,打开目录

...\Qt\5.14.2\mingw73_64\plugins\sqldrivers
Mingw中sqldrivers示例

我们可以看到,mysql的dll文件是没有包含在内的。大家在Qt中尝试连接Mysql过后大多会Debug输出一条错误:

QSqlDatabase: QMYSQL driver not loaded,这就表示Mysql的驱动在Qt中不存在。

可能此时有些小伙伴已经掉头去安装Sqlite3了,这也是一种很好的解决方案,Qt自动支持Sqlite3。但是如果你是要搭配数据库和PHP,新的PHP7开启Sqlite3拓展将会是另一座大山…哈哈哈,没错,我就是PHP7打不开Sqlite3,Qt5连不上Mysql的那一种…好了,我们继续来看解决方案,坚持就是胜利!

查看Qt的编译环境和Mysql版本

我们首先打开Qt Creator

Qt5连接Mysql解决方案_第1张图片
Qt5连接Mysql解决方案_第2张图片
在这里我们可以看到目前Qt Creator使用的编译环境是MinGW32/64位
后面我们就会将下载的驱动放在目标文件夹下,这里要注意一下。

登录 Mysql

对于Mysql,我们查看版本位数,可以先使用命令提示符或者PowerShell输入:mysql -u [用户名] -p

输入密码后登录进入Mysql,再次输入:show variables like '%version_%';

下载所需Mysql驱动

我在Github上找到了适用于最新几版Qt的Mysql驱动文件qsqlmysql.dll,分别对应各个版本的MinGW(32或64位)和MSVC环境。
这与我们之前查看过的Qt编译构造环境联系密切。

Github目标链接

以我安装的Qt5.14.2为例

Qt5连接Mysql解决方案_第3张图片

下载完成后进行解压

解压结果

按照版本位数放置Mysql驱动

我这里选择路径\debug\sqldrivers下的qsqlmysql.dll驱动

这里对照前面查看到的Qt编译环境以及版本位数,在文件资源管理器中找到对应路径(我这里选择的是64位和32位的MinGW):

...\Qt\5.14.2\mingw73_64\plugins\sqldrivers

将复制的qsqlmysql.dll文件粘贴到该目录下,为了使用方便,我建议将MinGW的32位和64位都这般处理。

然后重新启动Qt,连接Mysql进行测试,这里我给出Qt连接数据库的代码和结果示例:

Qt5连接Mysql解决方案_第4张图片

Qt连接Mysql结果输出

                可能我的解决方案并不一定100%能解决你正在遭受的难题,但我100%会跟你在造作编程的路上同行!
                
				下次再跟大家分享好玩的东西,再见了。

你可能感兴趣的:(解决方案,qt5,mysql,windows,数据库,qtcreator)