前言
Qt SQL模块是Qt提供的一个访问数据库的接口,但由于法律问题Qt不再提供MySQL驱动,因此必须自己编译。本文配置环境:Qt 5.15.2 (MSVC 2019, 64 bit)、MySQL 8.0.25。
默认情况下,通过代码qDebug()<<QSqlDatabase::drivers();
输出当前已有驱动,会发现没有MySQL。
(“QSQLITE”, “QODBC”, “QODBC3”, “QPSQL”, “QPSQL7”)
1、下载MySQL
在MySQL官网下载MySQL Community Server软件,选择适合自己的版本。
2、设置qmake的环境变量
将qmake.exe的路径添加至环境变量Path中。例如我这里使用MSVC 2019, 64 bit,因此路径是:
D:\Program\QT5\5.15.2\msvc2019_64\bin
3、修改mysql.pro文件
用Qt Creator打开mysql驱动工程:
D:\Program\QT5\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql/mysql.pro
编辑mysql.pro文件,注释掉QMAKE_USE += mysql
,并添加MySQL的include路径和lib文件,例如
LIBS += "D:/SoftwareDevelopment/MySQL/mysql-8.0.25-winx64/lib/libmysql.lib"
INCLUDEPATH += "D:/SoftwareDevelopment/MySQL/mysql-8.0.25-winx64/include
Ctrl+B构建项目,完成后会在Qt所在磁盘的根目录下生成plugins、lib、mkspecs三个文件夹。将plugins\sqldrivers中的qsqlmysql.dll和qsqlmysqld.dll复制到Qt目录下,例如:
D:\Program\QT5\5.15.2\msvc2019_64\plugins\sqldrivers
好了,现在再次通过代码qDebug()<<QSqlDatabase::drivers();
输出当前已有驱动,会看到多了MySQL相关驱动:
(“QSQLITE”, “QMARIADB”, “QMYSQL”, “QMYSQL3”, “QODBC”, “QODBC3”, “QPSQL”, “QPSQL7”)