Windows 下實現(xiàn) Qt 連接 MySQL

如果應(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澡罚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肾请,更是在濱河造成了極大的恐慌留搔,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铛铁,死亡現(xiàn)場離奇詭異隔显,居然都是意外死亡,警方通過查閱死者的電腦和手機饵逐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門括眠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人倍权,你說我怎么就攤上這事掷豺。” “怎么了薄声?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵当船,是天一觀的道長。 經(jīng)常有香客問我默辨,道長德频,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任缩幸,我火速辦了婚禮抱婉,結(jié)果婚禮上档叔,老公的妹妹穿的比我還像新娘桌粉。我一直安慰自己蒸绩,他們只是感情好,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布铃肯。 她就那樣靜靜地躺著患亿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪押逼。 梳的紋絲不亂的頭發(fā)上步藕,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機與錄音挑格,去河邊找鬼咙冗。 笑死,一個胖子當著我的面吹牛漂彤,可吹牛的內(nèi)容都是我干的雾消。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼挫望,長吁一口氣:“原來是場噩夢啊……” “哼立润!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起媳板,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤桑腮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛉幸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體破讨,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年奕纫,在試婚紗的時候發(fā)現(xiàn)自己被綠了提陶。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡若锁,死狀恐怖搁骑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情又固,我是刑警寧澤仲器,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站仰冠,受9級特大地震影響乏冀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜洋只,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一辆沦、第九天 我趴在偏房一處隱蔽的房頂上張望昼捍。 院中可真熱鬧,春花似錦肢扯、人聲如沸妒茬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乍钻。三九已至,卻和暖如春铭腕,著一層夾襖步出監(jiān)牢的瞬間银择,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工累舷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浩考,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓被盈,卻偏偏與公主長得像析孽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子害捕,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容