1. 程式人生 > 其它 >QSqlDatabase:QMYSQL driver not load 之Qt與MySQL連線報錯的解決辦法

QSqlDatabase:QMYSQL driver not load 之Qt與MySQL連線報錯的解決辦法

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位的.

2. 解決MySQL驅動載入問題