mysql-mysql源碼本地調試

前言

先進行mysql源碼本地編譯:mysql源碼本地編譯

1.本地調試

這里以macbook為例
1.使用vscode打開mysql源碼
在這里插入圖片描述

2.創建basedir目錄、數據目錄、配置文件目錄、配置文件

cd /Users/test/
mkdir  mysqldir
//創建數據目錄和配置目錄
cd mysqldir
mkdir conf data
cd conf
touch my.cnf

目錄結構如圖:
在這里插入圖片描述

3.編輯my.cnf配置文件

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/Users/test/mysqldir
datadir=/Users/test/mysqldir/data
socket=/Users/test/mysqldir/mysql.sock
log-error=/Users/test/mysqldir/mysql.err
pid-file=/Users/test/mysqldir/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true[client]
port=3306
socket=/Users/test/mysqldir/mysql.sock

4.初始化mysql

mysql源碼編譯成功后可執行文件mysqld、mysql會出現在工程的build/bin下

4.1配置mysql數據庫debug配置

在工程目錄下創建.vscode目錄并在該目錄下創建launch.json文件
在這里插入圖片描述

4.2編輯launcun.json文件

{"version": "0.2.0","configurations": [{"name": "C++ Debug","type": "lldb",//windows系統是cppgdb,macbook系統是lldb"request": "launch","program": "${workspaceFolder}/build/bin/mysqld", // 替換為你的可執行文件路徑"args": ["--defaults-file=/Users/test/mysqldir/conf/my.cnf"///"${workspaceFolder}/data.xodr"],//    "stopAtEntry": false,"cwd": "${workspaceFolder}",//   "environment": [],//  "externalConsole": false,//   "MIMode": "lldb",// "setupCommands": [//   {//     "description": "Disable pretty printing",//     "text": "-enable-pretty-printing",//     "args": [],//     "ignoreFailures": true//   }// ],// "miDebuggerPath": "/opt/homebrew/bin/gdb"  // 根據系統修改路徑,如 macOS 上可能是 `/opt/homebrew/bin/gdb`}]}

4.3安裝codelldb插件

在這里插入圖片描述
安裝過程中有可能會讓你去github下載codelldb-darwin-x64.vsix會很慢,不過放心我已經幫你下載好了

鏈接: https://pan.baidu.com/s/1FSMyzNfLu9fTaMR1-X2Mzg?pwd=cyv2 提取碼: cyv2

下載后之后選擇插件下載界面,將該文件拖拽到vscode插件列表區域會自動安裝,等待安裝成功即可。

4.4開始mysqld啟動調試

ctrl+p搜索 sql_parse.cc文件
在這里插入圖片描述
開啟調試
在這里插入圖片描述
進入調試狀態
在這里插入圖片描述
設置斷點
為什么先開啟調試再設置斷點,因為數據庫服務端啟動的時候也會執行這個方法,為了影響mysqld的正常啟動,等到調試啟動后再打斷點。
在這里插入圖片描述

4.5 啟動mysql客戶端

進入build/bin啟動mysql客戶端

./mysql -uroot -p -S /Users/test/mysqldir/mysql.sock

回車進入數據庫客戶端

在這里插入圖片描述
創建數據庫

create database test;

使用數據庫

use test

創建數據庫

create table test(age int,name varchar(15)
) engine=innodb character set utf8mb4;

4.6執行sql進行

客戶端執行

select * from test;

此時回到調試界面會看到斷點處已經暫停
在這里插入圖片描述
到這里關注

int mysql_execute_command(THD *thd, bool first_level) 
中的thd變量,找到m_query_string屬性

在這里插入圖片描述
好的,結束

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/81949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/81949.shtml
英文地址,請注明出處:http://en.pswp.cn/web/81949.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

帶你手寫React中的useReducer函數。(底層實現)

文章目錄 前言一、為什么需要 Reducer?二、Reducer 的核心概念1. Reducer 函數2. useReducer 鉤子 三,手寫react中的useReducer 總結 前言 在 React 開發中,useReducer 是管理復雜狀態邏輯的利器。它類似于 Redux 的簡化版,允許我…

用wireshark抓了個TCP通訊的包

昨兒個整理了下怎么用wireshark抓包,鏈接在這里:捋捋wireshark 今天打算抓個TCP通訊的包試試,整體來說比較有收獲,給大家匯報一下。 首先就是如何搞到可以用來演示TCP通訊的客戶端、服務端,問了下deepseek,…

運維 pgsql 安裝完后某次啟動不了

pgsql 安裝完后某次啟動不了 錯誤 data directory "/usr/local/postgresql/data" has invalid permissions 安裝成功后一直可以 后面同事敲了 chmod -R 777 /usr/local 導致不行 改到了 /usr/local/postgresql/data 權限 /usr/local/postgresql/data的權限有限…

查看·電腦安裝·的 .NET 版本

方法 一:使用命令提示符或 PowerShell 打開命令提示符或 PowerShell。 輸入以下命令:dotnet --version 按下回車鍵。 命令輸出將顯示已安裝的 .NET 版本。 方法二:使用 .NET Framework 控制面板 打開控制面板。 點擊“程序”。 點擊“程序…

Linux WiFi 模組使用及故障排查整理文檔

Linux WiFi 模組使用及故障排查整理文檔 1. STA 模式下 WiFi 延時不穩定問題解決方法: 2. Power Saving 機制說明3. AP 模式下 WiFi 設置4. RTL8821CS AP 模式下 Windows 客戶端異常斷開問題問題描述問題原因解決方案步驟 1:修改 dnsmasq 配置步驟 2&…

mac mini m4命令行管理員密碼設置

附上系統版本圖 初次使用命令行管理員,讓輸入密碼,無論是輸入登錄密碼還是賬號密碼,都是錯的,百思不得其解,去網上搜說就是登錄密碼啊 直到后來看到了蘋果官方的文檔 https://support.apple.com/zh-cn/102367 https…

棧內行為分析

棧內行為分析 一、源碼分析 我們以以下簡單的 C 程序為例&#xff0c;通過 GDB 動態調試分析函數調用過程中的棧內布局變化&#xff1a; #include <stdio.h> int add(){int a 10;int b 20;return (a b); }int main() {add();return 0; }編譯為 32 位程序&#xff1a…

老舊設備數據采集破局 AI圖像解析如何讓質檢LIMS系統煥發新生

在實驗室數字化進程中&#xff0c;大量服役超過 10 年的老舊設備成為數據采集的 “攔路虎”&#xff1a;指針式儀表盤需人工讀取、紙質原始記錄靠手工錄入、非標準接口設備數據無法自動獲取…… 某化工實驗室因 15 臺老舊設備數據采集耗時占比達 40%&#xff0c;檢測效率長期滯…

【征求意見】四川省大數據發展研究會關于對《數據資源建設費用測算標準》團體標準征求意見的通知

四川省大數據發展研究會 關于對《數據資源建設費用測算標準》團體標準征求意見的通知 各有關單位&#xff1a; 由四川省大數據發展研究會歸口、成都東契奇科技有限公司牽頭編制的《數據資源建設費用測算標準》團體標準已形成征求意見稿&#xff0c;現公開征求意見。請于2025年…

element上傳文件多選 實現文件排序

上傳文件多選排序 只上代碼 不多逼逼 這是el-elment 的文件上傳 <el-uploadaction"#"list-type"picture-card"ref"upload":accept"accept":on-change"onUploadChange":file-list"fileList":http-request&quo…

.NET 查找 DLL 的路徑順序

在 C# 中&#xff0c;[DllImport("SgCamWrapper.dll")] 這行代碼表明它會在運行時從當前可執行文件的搜索路徑中查找 SgCamWrapper.dll。具體搜索順序如下&#xff08;按優先級&#xff09;&#xff1a; ? .NET 查找 DLL 的路徑順序&#xff1a; 應用程序啟動目錄&a…

低代碼——表單生成器以form-generator為例

主要執行流程說明&#xff1a; 初始化階段 &#xff1a; 接收表單配置對象formConf深拷貝配置&#xff0c;初始化表單數據和驗證規則處理每個表單組件的默認值和特殊配置&#xff08;如文件上傳&#xff09; 渲染階段 &#xff1a; 通過render函數創建el-form根組件遞歸渲染表…

自定義載板RK3588HDMI輸入配置完整解決方案

Orange Pi 5 Plus HDMI輸入配置完整解決方案 &#x1f4cb; 項目概述 本文檔記錄了Orange Pi 5 Plus HDMI1接口配置問題的完整分析和解決過程。從初始的"disconnected"狀態問題&#xff0c;到最終實現HDMI輸入功能的全過程技術分析。 &#x1f3af; 問題描述 初始…

SAAS架構設計2-流程圖-用戶與租戶之間對應關系圖

在SAAS&#xff08;Software as a Service&#xff0c;軟件即服務&#xff09;結構中&#xff0c;用戶與租戶之間的關系可以通過一對一和多對多兩種方式來定義。這兩種關系模式各自有著不同的應用場景和特點。 用戶和租戶的關系&#xff08;一對一&#xff09; 一對一關系 在這…

Spring Boot微服務架構(八):開發之初就引入APM工具監控

使用 APM&#xff08;Application Performance Management&#xff09;工具監控 Spring Boot 應用&#xff0c;可以幫助開發者實時追蹤性能瓶頸、分析調用鏈路、監控資源使用情況&#xff0c;并快速定位故障。以下是詳細的步驟和常用工具的選擇指南&#xff1a; ??一、常用 A…

Python 如何讓自動駕駛的“眼睛”和“大腦”真正融合?——傳感器數據融合的關鍵技術解析

Python 如何讓自動駕駛的“眼睛”和“大腦”真正融合?——傳感器數據融合的關鍵技術解析 自動駕駛技術從來都不是“單兵作戰”。如果你細看一輛自動駕駛汽車,它其實是一個傳感器的集合體:攝像頭、激光雷達(LiDAR)、毫米波雷達、超聲波傳感器、GPS……這些傳感器各自發揮作…

《軟件工程》第 12 章 - 軟件測試

軟件測試是確保軟件質量的關鍵環節&#xff0c;它通過執行程序來發現錯誤&#xff0c;驗證軟件是否滿足需求。本章將依據目錄&#xff0c;結合 Java 代碼示例、可視化圖表&#xff0c;深入講解軟件測試的概念、過程、方法及實踐。 12.1 軟件測試的概念 12.1.1 軟件測試的任務 …

面試題 08.08. 有重復字符串的排列組合【 力扣(LeetCode) 】

文章目錄 零、原題鏈接一、題目描述二、測試用例三、解題思路四、參考代碼 零、原題鏈接 面試題 08.08. 有重復字符串的排列組合 一、題目描述 有重復字符串的排列組合。編寫一種方法&#xff0c;計算某字符串的所有排列組合。 二、測試用例 示例 1&#xff1a; 輸入&#…

【Linux】關于權限的理解

目錄 一、Linux用戶的分類 1.Linux下的兩種用戶 2.兩種用戶提示符的區別 3.用戶的切換方法 二、Linux的權限管理 1.文件訪問者分類 2.常見文件類型 3.文件訪問權限 4.權限檢查邏輯 5.文件權限的表示方式 三、與文件訪問權限相關的設置方法 1.前提&#xff1a; 2.如…

前端antd,后端fastapi,解決文件上傳

一、技術架構概述 前端框架&#xff1a;React Ant Design 5.x 使用antd的Upload組件&#xff08;支持拖拽/多文件/分片&#xff09; 后端框架&#xff1a;Python FastAPI 利用UploadFile類處理文件流 傳輸協議&#xff1a;HTTP FormData&#xff08;兼容性強&#xff09; 二…