qt5.12.3及以上高版本(qt5.13.0,qt5.13.1)如何连接操作mysql/mariadb数据库

公司项目使用qt5.12.0,qt5.12.1,qt5.12.2均进行过开发连接mysql没有问题,因为这几个版本内置mysql数据库驱动.直到昨天安装qt5.13.0和qt5.13.1进行测试,发现连接mysql时提示没有驱动加载, 这是qt报错的提示"QSqlDatabase: QMYSQL driver not loaded

,QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7".从这里可以清晰的知道目前,qt5.12.3及以上和qt5.13.0及以上,均没有mysql的驱动,mysql的驱动名是QMYSQL.因为没有在有效的驱动里,所以就需要自己编译配置了.

有朋友一听到编译源码,可能就觉得很难,这里我告诉你,非常简单.打开项目后,点击编译就好了.下面说下步骤:

1.下载64位的MySQL Community Server,目前最新版本是8.0.17,下载地址是https://dev.mysql.com/downloads/mysql/.

因为我得qt是mingw编译器64位的.完成后解压即可.不用安装的.

2.打开qt安装目录找到:qt安装目录\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql,我得目录和你安装的目录有差别也不奇怪,因为我的是多个版本的qt都在,所以进行了区分.如下图的目录.qt5.12.3及以上高版本(qt5.13.0,qt5.13.1)如何连接操作mysql/mariadb数据库_第1张图片

打开目录后,用qt打开mysql.pro,在mysql.pro中添加

#该路径是下载解压后的mysql的头文件路径
INCLUDEPATH +="E:\mysql-8.0.17-winx64\mysql-8.0.17-winx64\include"
#这是刚才下载解压后的MySQL的库文件路径
LIBS +="E:\mysql-8.0.17-winx64\mysql-8.0.17-winx64\lib\libmysql.lib"
 
#为了方便查找,不妨增加一条语句,该语句用来指明编译后的结果输出的位置
DESTDIR  = ../mysql/lib/

同时屏蔽QMAKE_USE += mysql:如下.如果不屏蔽会提示mysql库不存在.

#QMAKE_USE += mysql

 

完整的pro文件如下:

qt5.12.3及以上高版本(qt5.13.0,qt5.13.1)如何连接操作mysql/mariadb数据库_第2张图片

 

 

 

那么接下来,就点击编译按钮即可.不用其他操作.如果顺利你可以在目录下看到lib目录,如下

qt5.12.3及以上高版本(qt5.13.0,qt5.13.1)如何连接操作mysql/mariadb数据库_第3张图片

lib里有4个文件下图:

qt5.12.3及以上高版本(qt5.13.0,qt5.13.1)如何连接操作mysql/mariadb数据库_第4张图片

然后复制lib下的生成文件到D:\Qt\Qt5.13.1\5.13.1\mingw73_64\plugins\sqldrivers中.如下

qt5.12.3及以上高版本(qt5.13.0,qt5.13.1)如何连接操作mysql/mariadb数据库_第5张图片

 

恭喜你到这步,已经完成了mysql的驱动.你可以正常使用mysql数据库和mariadb数据库了.

如果你使用的是64位的mariadb数据库,只需要将mariadb数据库C:\Program Files\MariaDB 10.4\lib下的libmariadb.dll复制到qt的调试文件夹中改名为libmysql.dll即可.

qt中国群218967017/218967042 , 思年华编写

切记:不同版本的qt,一定要重新编译mysql.pro项目得到不同的mysql.dll驱动,因为mysql驱动不通用针对不同的qt版本.

 

义县游学电子科技有限公司,www.yxzhw.cn :

Web应用 桌面应用 数据获取 网站 移动开发 硬件系统

办公软件,通讯聊天,库存管理类

百度,支付宝,头条,微信小程序

适用于频繁多次操作

需要频繁重复性操作页面的情况

公司,个人网站建设

自动采集指定网站的数据信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(qt5,qt)