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();