公司项目使用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都在,所以进行了区分.如下图的目录.
打开目录后,用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文件如下:
那么接下来,就点击编译按钮即可.不用其他操作.如果顺利你可以在目录下看到lib目录,如下
lib里有4个文件下图:
然后复制lib下的生成文件到D:\Qt\Qt5.13.1\5.13.1\mingw73_64\plugins\sqldrivers中.如下
恭喜你到这步,已经完成了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应用 桌面应用 数据获取 网站 移动开发 硬件系统
办公软件,通讯聊天,库存管理类
百度,支付宝,头条,微信小程序
适用于频繁多次操作
需要频繁重复性操作页面的情况
公司,个人网站建设
自动采集指定网站的数据信息