qt5.12 连接mariadb数据库

介绍

mariadb是mysql的一个分支,代码编写上跟调用mysql一样。

mariadb安装

mariadb64下载: https://downloads.mariadb.org/.
qt5.12 连接mariadb数据库_第1张图片

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 
#include 
#include 
#include 

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

你可能感兴趣的:(QT)