QT默认是不含Mysql驱动的,所以我们需要手工编译Mysql动态链接库,以Win平台举例。
前期准备
下载mysql 数据库 q使用的是my,其他版本没有测试
下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/my-winx64.zip
编译mysql驱动
进入Qt源目录
D:\Qt\Q\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql
编辑my 工程文件
- 去掉 //QMAKE_USE += mysql
- 增加代码
LIBS += -LD:/software/my-winx64/lib/ -llibmysqlincludePATH += D:/software/my-winx64/includeDEPENDPATH += D:/software/my-winx64/include
修改q文件
返回上一层目录
D:\Qt\Q\5.13.1\Src\qtbase\src\plugins\sqldrivers
修改 include($$shadowed($$PWD)
改为 include($$shadowed($$PWD)
设置mingw环境变量
增加 D:\Qt\Q\5.13.1\mingw73_64\bin
和D:\Qt\Q\Tools\mingw730_64\bin到环境变量
制作Makefile文件
进入D:\Qt\Q\5.13.1\Src\qtbase\src\plugins\sqldrivers\mysql
依次执行
qmake mingw32-make mingw32-make install
校验结果
D:\Qt\Q\5.13.1\mingw73_64\plugins\sqldrivers目录下,会生成q,q 两个动态链接库
拷贝驱动
在数据库\my-winx64\lib目录下拷贝libmy到mingw的bin目录
D:\Qt\Q\5.13.1\mingw73_64\bin
项目引入驱动
在工程.pro文件里,添加sql
QT += core gui sql
编写测试代码
//一定要注意 如果出现QSqlDatabase: QMYSQL driver not loaded,清理下,重构 还不行的话切换下QMYSQL,QMYSQL3
db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("IP");
db.setPort(3306);
db.setDatabaseName("test");