最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

qt的mysql連接教程以及驅(qū)動編譯相關(guān)問題最新版,寫于2023年8月18日

2023-08-18 14:58 作者:冰碎琉璃  | 我要投稿

最近寫項目需要與mysql數(shù)據(jù)庫建立連接,在網(wǎng)上查了很多資料,要么資料是五六年前的,而兩三年前的資料要么有問題,要么就是感覺是東拼西湊出來的一樣,驢頭不對馬嘴,而且過程及其粗糙,生怕大家學(xué)會了,故而自己編譯完后寫下了教程---2023.8.18


?。。∽⒁?,mysql驅(qū)動編譯問題根據(jù)不同的版本很可能出現(xiàn)極其嚴重的問題導(dǎo)致本版本無法編譯,請注意

?

Qt默認是不支持mysql驅(qū)動的,需要自己進行手動編譯,我的是6.5.2,可以看到在這里

6.5.2\mingw_64\plugins\sqldrivers

這個文件夾下面是沒有qsqlmysql.dll這個組件的

?

驅(qū)動編譯問題首先需要源碼也就是qt自帶的源碼,如果qt下沒有這個Src文件夾,是因為當(dāng)初安裝的時候沒有勾選


qt下的Src文件夾展示

返回qt安裝目錄下,打開cmd窗口,將MaintenanceTool.exe拖入cmd窗口

如圖

不要問為啥你們的是黑框框。。沒影響,美化可以自己搜

Powershell也可以(我自己用的powershell),然后空一格,輸入鏡像網(wǎng)站

--mirror https://mirrors.tuna.tsinghua.edu.cn/qt

mirror后面的部分不唯一,網(wǎng)上也能找到很多大學(xué)的鏡像網(wǎng)站

(你也可以直接雙擊打開,只不過下載速度極其感人就是了,及其折磨)


然后回車,就可以打開qt頁面了,點擊下一步,選擇添加或移除組件,然后下一步,勾選Archive

然后點擊篩選,就可以顯示更多版本了,找到自己的版本,然后勾選Sources

這里我已經(jīng)安裝過了,就不演示了,下面也沒什么,等就好了,剩下的點擊下一步安裝就好了

安裝好了之后,就可以有Src了,之后進入Src\qtbase\src\plugins\sqldrivers

打開.cmake.conf這個文件,選擇使用記事本,可以看到本來應(yīng)該是這樣的

因為我已經(jīng)改過了,所以是我把加上去的剪切了一下,方便大家看的,上面的版本號不影響,千萬不要隨便更改

我們添加上這三行代碼

SET(FEATURE_sql_mysql ON)

SET(MySQL_INCLUDE_DIR "x:/xxxx/include")

SET(MySQL_LIBRARY "x:/xxx/lib/libmysql.lib")

?

最后兩行是你下載的mysql的安裝路徑,mysql的安裝本處不再多說,例如我的安裝在了E盤的Mysql下,就寫成這樣

SET(FEATURE_sql_mysql ON)

SET(MySQL_INCLUDE_DIR "E:/Mysql/include")

SET(MySQL_LIBRARY "E:/Mysql/lib/libmysql.lib")

然后打開qt,打開這個文件夾下的CMakeLists.txt

打開過后看左邊,是不是這樣的,如果整個名字都錯了,不是QSQLiteDriverPlugins,而是sqldrivers之類的(據(jù)我所知qt6.2.3是這樣的),那么建議更新版本到一個能夠打開的版本,或者自行查閱資料進行解決

當(dāng)然,也有可能名字是對的,但是出現(xiàn)了多一個文件夾例如psql(我一開始就是這樣的),然后運行起來會有上百個報錯,那么這個時候在.cmake.conf之前那個文件中,改成這樣

SET(FEATURE_sql_mysql ON)

SET(FEATURE_sql_psql OFF)

SET(MySQL_INCLUDE_DIR "E:/Mysql/include")

SET(MySQL_LIBRARY "E:/Mysql/lib/libmysql.lib")

就可以關(guān)閉psql了,記得吧最后兩行的替換成自己的mysql路徑,之后選擇release進行編譯,

release版本是可以的,其他版本我不清楚,有興趣的可以自己試一試

當(dāng)然有可能他會報一個錯誤,不需要理會

這個報錯不影響之后的教程和生成文件

這個時候返回.cmake.conf的上級目錄,可以看到生成的realse文件

藍標(biāo)就是我說的release文件夾

進入然后點擊plugins,點擊sqldrivers,可以看到

這里我們復(fù)制粘貼qsqlmysql.dll和qsqlmysql.debug,把他放入開頭提到的6.5.2\mingw_64\plugins\sqldrivers,這里6.5.2是我的qt版本,各位自行更改就好

然后打開你的mysql,進入lib文件夾,找到libmysql.dll

把他放到你的qt的bin里面(這一段大家如果找不到一定要仔細看我上面的文件夾路徑)

這個時候就搞定了,mysql驅(qū)動就已經(jīng)編譯并且加載完畢了,如果你有輸出驅(qū)動的代碼這個時候就能夠輸出有mysql驅(qū)動了,前提是你運行的版本要跟你剛剛修改的版本一樣

?

但是這還沒完,還有一個問題就是在連接mysql驅(qū)動的時候,依然會報錯,顯示mysql驅(qū)動沒有加載,但是輸出的可使用的驅(qū)動里面明明是有mysql的,這個問題是由于mysql版本高的時候會有一個保護機制,首先我們進入mysql的官網(wǎng)


選擇Connector/C++

下載相應(yīng)版本的zip,我的是8.1.0,也就是第二個,后面的Archives是歷史版本,如果不知道怎么查看自己的mysql版本,請打開mysql輸入密碼后輸入status查看

,下載完了之后進入文件夾,找到

把里面除了文件夾的所有組件

復(fù)制粘貼到你項目代碼生成的Debug或者Realse的文件下,這樣就可以連接上數(shù)據(jù)庫了,如果你發(fā)現(xiàn)你lib64內(nèi)容和我的不一樣,不要慌張,版本不一樣這是很正常的,正常操作就好




好了就是這樣,因為我下載的直接復(fù)制粘貼到了mysql文件夾下,所以lib64的路徑會不一樣,各位自行調(diào)整即可

這方面的問題本教程不可能完全提到,如果有不全的地方還請自行與其他教程或者帖子相結(jié)合,還請見諒

順帶一提,最后發(fā)布版本打包exe過后也需要把lib64的組件復(fù)制過去,本教程寫于2023年8月18日,如果時間過去很久,那么教程就僅供參考了,還望海涵



qt的mysql連接教程以及驅(qū)動編譯相關(guān)問題最新版,寫于2023年8月18日的評論 (共 條)

分享到微博請遵守國家法律
徐汇区| 吉首市| 蒙阴县| 麻城市| 伊通| 色达县| 哈尔滨市| 密云县| 轮台县| 池州市| 安徽省| 高邮市| 巴彦淖尔市| 萨迦县| 鹤山市| 明星| 揭西县| 岐山县| 霍林郭勒市| 连城县| 吉隆县| 巍山| 涪陵区| 英山县| 靖宇县| 安塞县| 信丰县| 定陶县| 临澧县| 曲靖市| 九龙县| 鹤壁市| 太湖县| 林芝县| 武鸣县| 彝良县| 九台市| 邵阳市| 绥江县| 宁海县| 舒兰市|