QT5.9連接MySQL5.7解決QSqlDatabase: QMYSQL driver not loaded問題


在使用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();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM