介紹
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