如果應(yīng)用只需要連接遠程數(shù)據(jù)庫,那么本地不需要安裝 MySQL米母,只需要找到 MySQL 提供的 libmysql.dll 和libmysqld.dll 兩個動態(tài)連接庫,把他們加入到 Qt安裝目錄\5.9\mingw53_32\bin\疫蔓;默認 Qt 自帶已編譯好的 qsqlmysql.dll 和 qsqlmysqld.dll (文件路徑為 **Qt安裝目錄\5.9\mingw53_32\plugins\sqldrivers\ **)腐巢;兩者如果配套就能成功地讓 Qt 連接上 MySQL。
(我安裝的Qt 版本是 Qt 5.9.0 mingw53_32,文章中提到的一些路徑是我本機上的路徑鸦泳,需要進行適當修改)
一银锻、測試 Qt 與 MySQL 是否能正常連接
假設(shè) **Qt安裝目錄\5.9\mingw53_32\bin\ ** 下已加入了 libmysql.dll 和 libmysqld.dll,進行以下測試做鹰。
- 新建 Qt Widgets Application击纬,修改 main.cpp 的代碼為:
#include "mainwindow.h"
#include <QApplication>
#include <QtSql>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
//建立連接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("mysql");
db.setUserName("root");
db.setPassword("yourPassword");
bool ok = db.open();
if(ok) qDebug()<<"OK";
else qDebug()<<"False";
return a.exec();
}
- 構(gòu)建并運行項目,查看應(yīng)用程序輸出
如果輸出 OK钾麸,那到此為止了更振,Qt 與 MySQL 連接正常;如果輸出 False饭尝,不出意外是因為 libmysql.dll肯腕、libmysqld.dll 與 qsqlmysql.dll、qsqlmysqld.dll版本不匹配钥平!需要對 qsqlmysql.dll实撒、qsqlmysqld.dll 進行修改。
二涉瘾、添加 MySQL 的libmysql.dll知态、libmysqld.dll
(注意:Qt msvc2015_64 可以使用32
位、64 位版本的 MySQL 文件立叛,Qt mingw53_32 只能使用 32 位版本的MySQL 文件)
之前提到负敏,如果應(yīng)用只需要連接遠程數(shù)據(jù)庫,那么本地不需要安裝 MySQL囚巴,而只需要用到 MySQL 提供的動態(tài)連接庫 libmysql.dll 和 libmysqld.dll原在。那么如果不安裝MySQL,怎么獲取那兩個動態(tài)鏈接庫文件彤叉?可以這樣做:
- 從已安裝了 MySQL 的機器上拷貝這兩個文件庶柿。
- 本地臨時安裝 MySQL,然后保留下需要的文件秽浇,卸載 MySQL浮庐。
安裝 MySQL 可以去官網(wǎng)下載安裝包,不過我不太喜歡這樣做柬焕,因為現(xiàn)在 MySQL 的安裝組件太多太雜审残,很多東西都是不必要。推薦去一些開源鏡像站上下載對應(yīng)版本斑举,比如說 Tuna搅轿、USTC。臨時安裝 MySQL 之后先不急著卸載富玷,后面編譯 MySQL 驅(qū)動會用到璧坟。
三既穆、重新編譯 qsqlmysql.dll、qsqlmysqld.dll
編譯 Qt 關(guān)于 MySQL 的驅(qū)動需要用到 Qt 的源碼雀鹃,獲取 Qt 的源碼可以使用 MaintenanceTool.exe 下載 Src幻工,編譯驅(qū)動用到的工程文件路徑為 **Qt安裝目錄\5.9\Src\qtbase\src\plugins\sqldrivers\mysql\ **。源碼差不多有2G的大小黎茎,而編譯驅(qū)動需要用到的工程文件大約幾十M囊颅,要是存儲空間和網(wǎng)速不給力,建議只下載
qtbase-opensource-src-5.9.0.zip傅瞻,需要的工程在 **qtbase-opensource-src-5.9.0\src\plugins\sqldrivers\mysql\ **踢代。
用 Qt 打開上面提到的編譯驅(qū)動用到的工程文件,在 mysql.pro 末尾加上這兩句:
INCLUDEPATH += mysql安裝目錄\include
LIBS += -Lmysql安裝目錄\lib\ -llibmysql
構(gòu)建并運行項目會在 C 盤下生成 plugins\sqldrivers 目錄俭正,里面包含 qsqlmysql.dll奸鬓、qsqlmysqld.dll 兩個文件,將它們復(fù)制一份覆蓋原先的兩個文件即可掸读。再次進行 Qt 與 MySQL 的連接測試串远,成功了沒有?
四儿惫、貼上我編譯好的配套的驅(qū)動文件
百度云鏈接:click
密碼:d4h6