QSqlDatabase:QMYSQL driver not load 之Qt與MySQL連線報錯的解決辦法
阿新 • • 發佈:2021-02-08
1.錯誤情況
1.1 測試程式
QStringList drivers = QSqlDatabase::drivers();
foreach (QString str, drivers) {
//QDebug() << str << " " ;
cout << str.toStdString() << endl;
}
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName ("127.0.0.1");
db.setUserName("root");
db.setPassword("806102068");//密碼多少806102068
if (false == db.open())
{
QMessageBox::critical(NULL, tr("it is not connected database"), tr("it is not connected database"), QMessageBox::Cancel);
}
安裝Qt後,準備進行與MySQL資料庫的測試,結果提示:
QMYSQL driver not load
可見,除了MySQL資料庫驅動,其他資料庫驅動都已載入成功了:
像這種錯誤,原因有很多.常見問題如下:
-
MySQL是64位的,Qt是32位的;
-
MySQL是32位的.Qt是64位的;
-
MySQL資料庫的版本太新,導致沒有與Qt對應配套的libmysql.dll檔案
1.2 錯誤總結
- 不同版本的mysql裡面包含不同的libmysql.dll, 不同的libmysql.dll必須和配套的qsqlmysqld.dll,qsqlmysql.dll一起才能正常工作.
- MySQL的版本和Qt的版本需要一致.比如MySQL是32位的,這時Qt也必要要求是32位的.