MySql輕鬆入門系列——第二站 使用visual studio 對mysql進行源碼級調試

来源:https://www.cnblogs.com/huangxincheng/archive/2020/06/10/13084736.html
-Advertisement-
Play Games

一:背景 1. 講故事 上一篇說了mysql的架構圖,很多同學反饋說不過癮,畢竟還是聽我講故事,那這篇就來說一說怎麼利用visual studio 對 mysql進行源碼級調試,畢竟源碼面前,不談隱私,聖人面前,皆為螻蟻。 二:工具合集 mysql是C++寫的,要想在windows上編譯,還需要下載 ...


一:背景

1. 講故事

上一篇說了mysql的架構圖,很多同學反饋說不過癮,畢竟還是聽我講故事,那這篇就來說一說怎麼利用visual studio 對 mysql進行源碼級調試,畢竟源碼面前,不談隱私,聖人面前,皆為螻蟻。

二:工具合集

mysql是C++寫的,要想在windows上編譯,還需要下載幾個必備小工具。

  • mysql-5.7.12.zip
  • cmake-3.17.3-win64-x64.msi
  • boost_1_59_0.tar.gz
  • bison-2.4.1-setup.exe
  • windows 10 x64

這裡簡單說一下:可以用 cmake 將源碼生成 *.sln 可打開的解決方案,比如可以通過它最終生成 MySQL.sln。boost 是C++中非常強大的基礎庫,bison 一個流行的語法分析器程式,用於給mysql提供語法分析,最後就是下載正確的mysql版本5.7.12。

三. 詳細安裝

我會寫的比較細,畢竟我也花了一下午時間,寒酸(┬_┬)

1. cmake-3.17.3-win64-x64.msi 和 bison-2.4.1-setup.exe

cmake 和 bison 安裝起來比較方便,一鍵安裝就可以了,不過這裡有一個大坑註意了,在安裝Bison的時候,千萬不要使用預設路徑,因為預設路徑有空格,會導致你後面vs編譯的時候卡住,又不顯示什麼原因,可氣!!! 所以我換成自定義的: C:\2\GnuWin32。

最後確保 cmake 和 bison 的bin文件都在 環境變數中即可。

2. mysql-5.7.12.zip

這裡我用 C:\2作為根文件夾,所有的小工具都在這裡,如圖:

接下來將 mysql-5.7.12.zip 解壓一下,然後進入解壓後的文件夾,新建一個boost文件夾,將boost_1_59_0.tar.gz放入其中,然後再新建一個 brelease 文件夾可用於存放最終生成的MySql.sln

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 實現raid有2種方式:軟體 RAID 的性能較低,因為其使用主機的資源。 需要載入 RAID 軟體以從軟體 RAID 捲中讀取數據。在載入 RAID 軟體前,操作系統需要引導起來才能載入 RAID 軟體。在軟體 RAID 中無需物理硬體。零成本投資。硬體 RAID 的性能較高。他們採用 PCI E... ...
  • 一、檢查 Linux 上是有存在 docker [root@localhost bin]# docker version 不存在 docker 時,可以使用如下命令下載 docker [root@localhost local]# yum -y install docker 在使用 docker 版 ...
  • 所有知識體系文章,GitHub已收錄,歡迎Star!再次感謝,願你早日進入大廠! GitHub地址: https://github.com/Ziphtracks/JavaLearningmanual MySQL存儲過程 一、存儲過程 1.1 什麼是存儲過程 存儲過程(Stored Procedure ...
  • 複製和故障轉移 Redis集群中的節點分為主節點(master)和從節點(slave),其中主節點用於處理槽,而從節點則用於複製某個主節點,併在被覆制 的主節點下線時,代替下線主節點繼續處理命令請求。 設置從節點:CLUSTER REPLICATE < node_id >可以讓接收命令的節點稱為no ...
  • 在SQL Server中,普通的表值函數(table-valued function)是可以使用表提示(Hints-Table)的,那麼CLR類型的表值函數(table-valued function)是否也可以使用表提示(Hints-Table)呢? 相信很多人都沒有留意過這個問題。 下麵我以Yo... ...
  • 宜未雨而綢繆,毋臨渴而掘井 說說MySQL的事務 資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 一個資料庫事務通常包含對資料庫進行讀或寫的一個操作序列。它的存在包含有以下兩個目的: 為資料庫提供一個從失敗恢復正 ...
  • 說明: <> 中的內容是自己定義的內容 [] 中的內容是可以省略的 field 包含欄位名和數據類型,field_name 僅指欄位名 table_name 指表名 position 指欄位位置,可取值:FIRST、AFTER <field> 修改表名 -- 修改數據表名稱。 -- old_tabl ...
  • 桔妹導讀:滴滴HBase團隊日前完成了0.98版本 → 1.4.8版本滾動升級,用戶無感知。新版本為我們帶來了豐富的新特性,在性能、穩定性與易用性方便也均有很大提升。我們將整個升級過程中面臨的挑戰、進行的思考以及解決的問題總結成文,希望對大家有所幫助。 1. 背景 目前HBase服務在我司共有國內、 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...