天天看點

Qt連接配接MySQL的問題

錯誤資訊提示

QSqlDatabase: QMYSQL driver not loaded //無法加載驅動
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
           

解決方式

補充注:1.MySQL的安裝路徑不能有空格,搞了我半天之前。2.在你項目的pro檔案中加一行

QT +=sql

開始之前先說明一下我的工具版本,我用的是Qt 5.12.2、MySQL 8.0.21 64位版本。其中Qt安裝時的勾選條目如下:

Qt連接配接MySQL的問題
Qt連接配接MySQL的問題
  1. 打開檔案:
    Qt連接配接MySQL的問題
  2. Qt連接配接MySQL的問題
  3. Qt連接配接MySQL的問題
#鍵入以下代碼,可直接複制
TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp

#QMAKE_USE += mysql

OTHER_FILES += mysql.json

win32:LIBS += -LD:/application/MySQL/lib/ -llibmysql #注意是你自己MySQL的路徑
INCLUDEPATH += D:/application/MySQL/include #下同
DEPENDPATH += D:/application/MySQL/include

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
           
  1. 上面的三個路徑就是你自己的MySQL中的bin和include
    Qt連接配接MySQL的問題
  2. Qt連接配接MySQL的問題
  3. Qt連接配接MySQL的問題
  4. Qt連接配接MySQL的問題
  5. Qt連接配接MySQL的問題
  6. Qt連接配接MySQL的問題
  7. 輸入如下代碼測試
#include <QApplication>
#include<QMessageBox>
#include<QSqlDatabase>
#include<QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    qDebug()<<"available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
       qDebug()<<driver;

    //打開MySQL
    QSqlDatabase data_base = QSqlDatabase::addDatabase("QMYSQL");
    data_base.setHostName("localhost");  //設定主機位址
    data_base.setPort(3306);  //設定端口
    data_base.setDatabaseName("test");  //設定資料庫名稱
    data_base.setUserName("root");  //設定使用者名
    data_base.setPassword("123456");  //設定密碼
    if(!data_base.open())
        qDebug()<<"failed to connect to mysql";
    else
       qDebug()<<"success";


    return a.exec();
}
           
Qt連接配接MySQL的問題

成功通路資料庫!