怎麼樣使用CLion調試分析MySQL Server

因爲在寫MySQL日誌訂閱服務時候,須要肯定在什麼event以後保存position,因此就開始研究MySQL的源碼,剛開始採用最原始的打印輸出的方式去調試,而後每次改完編譯運行,效率好低,讓我很絕望,而後我花了些時間研究下怎麼使用CLion Debug MySQL。html

獲取源碼mysql

git clone https://github.com/mysql/mysql-server

編譯安裝初始化數據庫git

cd mysql-server

cmake \
-DCMAKE_INSTALL_PREFIX=/path/mysql/install \
-DMYSQL_DATADIR=/path/mysql/data \
-DSYSCONFDIR=/path/mysql/etc \
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock \
-DWITH_DEBUG=1  \
-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path/mysql-server/ -DDOWNLOAD_BOOST_TIMEOUT=60000

make -j 4 

make install -j 4

mysqld --initialize-insecure --user=root --datadir=/path/mysql/data

啓動MySQL,測試下是否安裝成功 github

/path/install/bin/mysqld --defaults-file=/path/mysql/etc/my.cnf

使用CLion新建工程並打開源碼目錄以後,設置CLion 設置CLion CMake選項sql

CMake Options和你編譯安裝時的選項一致數據庫

-DCMAKE_INSTALL_PREFIX=/path/mysql/install 
-DMYSQL_DATADIR=/path/mysql/data 
-DSYSCONFDIR=/path/mysql/etc 
-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock 
-DWITH_DEBUG=1

而後在CLion裏,Reload CMake Project架構

Reload CMake Project

在Run/Debug列表裏就能夠看到不少選項了學習

Run/Debug

找到mysqld配置下啓動參數 mysqld配置下啓動參數測試

mysqld --defaults-file=/path/mysql/etc/my.cnf

而後以Debug模式啓動,看下成功的效果 Debug模式啓動調試

學習MySQL源碼的文檔

https://dev.mysql.com/doc/internals/en/

能夠找到想要學習的功能的源碼位置,不至於沒頭蒼蠅,好比主從同步功能(replication) 

https://dev.mysql.com/doc/internals/en/replication-source-code-files.html

更多架構、PHP、GO相關踩坑實踐技巧請關注個人公衆號:PHP架構師

相關文章
相關標籤/搜索