1. 程式人生 > >windows下QT5.9連線MYSQL

windows下QT5.9連線MYSQL

首先,按照教程嘗試連線資料庫:
QSqlDatabase db = QSqlDatabase:: addDatabase( "QMYSQL");
    db.setHostName("localhost");
    db.setPort(3306);
    db.setDatabaseName("test");
    db.setUserName("使用者名稱");
    db.setPassword("密碼");
    bool ok = db.open();
    if (!ok
)
    {
    qDebug()<<"連線失敗";
    }
    else
    {
    qDebug()<<"成功!";
    }

執行報錯:
QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

連線失敗


意思大概就是:“QMYSQL驅動載入失敗”,“可用驅動有:QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL7”。

明明可用驅動中包含QMYSQL,為什麼會提示載入失敗呢?查看了一坨資料,總結了一下,應該是缺了載入mysql驅動時所需要的一些東西,導致載入失敗。

根據網上提供的方法:將mysql安裝目錄中的libmysql.dll檔案拷貝到QT安裝目錄下的bin目錄中就可以了:

windows下QT5.9連線MYSQL
將這三個檔案複製到D:\QT5.9\5.9.2\mingw53_32\bin路徑下,還是回報上邊的錯誤,沒辦法只能手動載入庫:

void loadSqlDriver()

{
    QPluginLoader loader;
    loader.setFileName("D:/QT5.9/5.9.2/mingw53_32/plugins/sqldrivers/qsqlmysqld.dll");
    qDebug() << loader.load();
}

列印true,再嘗試連線資料庫就顯示連線成功了