在使用qt連接mysql數據庫時,總是出現QSqlDatabase: QMYSQL driver not loaded的問題。網上有很多解決辦法,比較麻煩的方法是重新編譯QT中mysql的驅動文件qsalmysql.dll,還有一種簡單方法是把libmysql.dll復制到指定的目錄(但是很多都沒說清楚)。經過多番嘗試最終找到一種最簡單的解決辦法解決該問題。

准備工作
下載qt-opensource-windows-x86-5.9.1.exe
下載mysql-installer-community-5.7.26.0.msi
安裝
由於qt為32位版本,所以安裝MySQL時,選擇MySQL Server x86 以及 MySQL Connector/C x86,否則會出現QSqlDatabase: QMYSQL driver not loaded的問題。

配置
打開C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib將libmysql.dll和libmysql.lib兩個文件復制到C:\Programs\Qt\Qt5.9.1\5.9.1\mingw53_32\bin目錄下。
測試代碼
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlError>
#include <QtDebug>
void connect_mysql()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost"); //連接數據庫主機名
db.setPort(3306); //連接數據庫端口號
db.setDatabaseName("xxxxxx"); //連接數據庫名
db.setUserName("root"); //數據庫用戶名
db.setPassword("xxxxxx"); //數據庫密碼
db.open();
if(!db.open())
{
qDebug()<<"不能連接"<<"connect to mysql error"<<db.lastError().text();
return ;
}
else
{
qDebug()<<"連接成功"<<"connect to mysql OK";
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
connect_mysql();
return a.exec();
}

