Qt版本是6.0.3,mysql版本是8.0.23
根据项目https://github.com/thecodemonkey86/qt_mysql_driver翻译
原文:Get precompiled qsqlmysql.dll from releases
获取编译后的qsqlmysql.dll 链接
根据你安装的版本选需要的文件
之后
-
put qsqlmysql.dll (if release build) / qsqlmysqld.dll (if debug build, but note that when using MinGW 8.1.0 the debug build is named qsqlmysql.dll as well) in application subdirectory “sqldrivers”
将qsqlmysql.dll(大概就是根据发布版本还是测试版本选择所需要的文件)放到Qt的sqldrivers目录下。
例如我的目录是C:\Qt\6.0.1\mingw81_64\plugins\sqldrivers -
put libmysql.dll (the MySQL library itself) and the OpenSSL v1.1 libraries, libcrypto-1_1 and libssl-1_1, in your application dir
把MySQL/lib目录下的libmysql.dll和下载文件的libcrypto-1_1x64,dll and libssl-1_1,dll放到Qt的bin目录下
例如我的是C:\Qt\6.0.1\mingw81_64\bin
两次文件安放的目录不一样
运行代码进行测试
qDebug()<<"available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<<driver;
运行代码实测
hostName = "localhost";
dbName = "db";
user = "root";
pwd = "";
sqlconn = QSqlDatabase::addDatabase("QMYSQL");
sqlconn.setHostName(hostName);
sqlconn.setDatabaseName(dbName);
sqlconn.setPassword(pwd);
sqlconn.setPort(3306);
sqlconn.setUserName(user);
qDebug("database open status: %d\n", sqlconn.open());
QSqlError error = sqlconn.lastError();
qDebug() << error.text();
sqlconn.close();