qt5.12 連接mariadb數據庫

介紹

mariadb是mysql的一個分支,代碼編寫上跟調用mysql一樣。

mariadb安裝

mariadb64下載: https://downloads.mariadb.org/.
在這裏插入圖片描述

qt編譯mysql驅動

因爲qt5.12不帶mysql驅動,需要自己編譯。
下載64位的MySQL Community Server:https://dev.mysql.com/downloads/mysql/
下載後解壓即可,我的放在F:\mysql-8.0.20-winx64。

用qt creator 打開mysql工程:D:\Qt\Qt5.12.6\5.12.6\Src\qtbase\src\plugins\sqldrivers\mysql(找到自己的qt安裝路徑)
在.pro文件中添加

#該路徑是下載解壓後的mysql的頭文件路徑
INCLUDEPATH +="F:/mysql-8.0.20-winx64/include"
#這是剛纔下載解壓後的MySQL的庫文件路徑
LIBS +="F:/mysql-8.0.20-winx64/lib/libmysql.lib"
#文件生成路徑
DESTDIR = ../mysql/lib/

將生成的qsqlmysql.dll,qsqlmysqld.dll拷貝到D:\Qt\Qt5.12.6\5.12.6\mingw73_64\plugins\sqldrivers目錄下
編好的驅動:https://download.csdn.net/download/sinat_33859977/12403190

拷貝libmariadb.dll

找到mariadb的安裝目錄,將C:\Program Files\MariaDB 10.4\lib\ 下的 libmariadb.dll 拷貝到D:\Qt\Qt5.12.6\5.12.6\mingw73_64\bin 目錄下。修改libmariadb.dll 名稱爲libmysql.dll。

測試

在.pro中添加

QT += sql

main.cpp

#include "widget.h"
#include <QApplication>
#include <QtDebug>
#include <QSqlDatabase>
#include <QSqlQuery>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    qDebug() << "Avaliable drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach (QString driver, drivers)
        qDebug() << driver;

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("test");
    db.setUserName("root");
    db.setPassword("123456");

    if(db.open())
    {
        qDebug() << "open sucess";
    }
    else
    {
        qDebug() << "open faile";
    }
    return a.exec();
}

輸出結果:
Avaliable drivers:
“QSQLITE”
“QMYSQL”
“QMYSQL3”
“QODBC”
“QODBC3”
“QPSQL”
“QPSQL7”
open sucess

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章