第一步,检查C:\Qt\Qt5.13.2\5.13.2\mingw73_64\plugins\sqldrivers目录下是否有qsqlmysql.dll、qsqlmysqld.dll两个动态库,没有的话需要使用源码编译(如果安装时没有源码,建议重装,也可以只下载对应源码包)
重装选项:
源码包下载地址:qtbase-opensource-src-5.9.0.zip
使用QT打开C:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\mysql下的工程,修改mysql.pro文件编译选项
1、注释掉#QMAKE_USE += mysql
2、根据自己的mysql安装路径,增加包含
LIBS += -L"C:/Program Files/MySQL/MySQL Server 8.0/lib" -llibmysql
INCLUDEPATH += "C:/Program Files/MySQL/MySQL Server 8.0/include/"
3、将C:\Qt\Qt5.13.2\5.13.2\Src\qtbase\src\plugins\sqldrivers\qsqldriverbase.pri文件中
注释掉:# include($$shadowed($$PWD)/qtsqldrivers-config.pri)
添加:include(./configure.pri)
编译通过,在C:\plugins\sqldrivers文件夹下生成库文件,将其拷贝到C:\Qt\Qt5.13.2\5.13.2\mingw73_64\plugins\sqldrivers文件夹下
4、将C:\Program Files\MySQL\MySQL Server 8.0\bin文件夹下的libcrypto-1_1-x64.dll、libssl-1_1-x64.dll动态库拷贝到C:\Qt\Qt5.13.2\5.13.2\mingw73_64\bin文件夹下。
完成以上操作,执行测试链接工程:
#include <QCoreApplication>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
//建立连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("mysql");
db.setUserName("root");
db.setPassword("123456");
bool ok = db.open();
if(ok) qDebug()<<"OK";
else qDebug()<<"False";
return a.exec();
}
输出OK,链接成功。