天天看點

Qt安裝MySQL驅動,解決QMYSQL driver not loaded問題Qt版本是6.0.3,mysql版本是8.0.23

Qt版本是6.0.3,mysql版本是8.0.23

根據項目https://github.com/thecodemonkey86/qt_mysql_driver翻譯

原文:Get precompiled qsqlmysql.dll from releases

擷取編譯後的qsqlmysql.dll 連結

根據你安裝的版本選需要的檔案

Qt安裝MySQL驅動,解決QMYSQL driver not loaded問題Qt版本是6.0.3,mysql版本是8.0.23

之後

  1. 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

  2. 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;
           
Qt安裝MySQL驅動,解決QMYSQL driver not loaded問題Qt版本是6.0.3,mysql版本是8.0.23

運作代碼實測

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();
           
Qt安裝MySQL驅動,解決QMYSQL driver not loaded問題Qt版本是6.0.3,mysql版本是8.0.23

繼續閱讀