windows下編譯除錯mysql

2021-08-25 15:57:34 字數 1479 閱讀 4299

mysql在類linux環境下的編譯、除錯相信大家都應該有所了解,和其他的gnu工具沒有兩樣:configure、make、gdb。。。 當然具體的引數選項可能會很多,可以參考官方文件。

用到的工具: vs2005 bison cmake

1. 在win下配置好bison cmake的環境變數,注意安裝這兩個工具的路徑盡量不要帶有空格

2. 參照$mysql_src\win\readme,執行vs2005所對應的build-vs8.bat, 生成相應的solution檔案等等如圖所示:

3. 在vs中可以開啟生成的solution檔案:

4. source目錄中比較重要的幾個目錄:

build  各個平台的編譯指令碼,可以關注 compile-pentium-debug

client    平時我們經常會用到的mysql客戶端工具,比如mysql mysqldump

mysys   系統程式設計介面的封閉,cross-platform:)

storage 這個是核心,儲存引擎嘛。重點可以看innodb myisam和example,特別是example,專門是為程式設計師demo的

sql        這個最重要了,mysqld所在哈

5. 需要手工修改一下sql_locale.cc的編碼,另存為utf-8,這樣子編譯mysqld的時候才可以過,詳情可參考mysql bug36281

6. 現在編譯mysqld可以成功了,試著執行下,還有問題:

於是到mysqld.cc的4267行看了下是個dbug_assert語句,懶的細看,直接注掉,重build,沒問題鳥終於。。。

7.  剩下的就是按照出錯提示,建立目錄sql\data

8.  檢視mysql-5.1.45\sql\data\t-wuyun.err錯誤log: fatal error: can』t open and lock privilege tables: table 『mysql.host』 doesn』t exist。  拷貝mysql-5.1.45\win\data\mysql到mysql-5.1.45\sql\data\mysql,再次執行mysql- 5.1.45\sql\debug\mysqld.exe,終於徹底靜悄悄了~~~

9.  終於可以單步debug了:

mysql-5.1.45\sql\debug\mysqld.exe –debug –standalone 先啟動好mysql server

在vs中attach到該程序,如圖所示

下個斷點,再啟個mysql客戶端請求一下:

mysql-5.1.45\client\debug\mysql.exe -uroot -p

mysql>show authors;

我們最喜愛的畫面終於出現鳥:

10.  收尾工作: mysql-5.1.45\client\debug\mysqladmin.exe -uroot -p shutdown

最後嘮叨一句: 能用gdb除錯學習就用gdb吧,在windows下配置真的不容易,關鍵是gdb的速度真不是蓋的 : )

windows下編譯除錯mysql5 5 24原始碼

突然想學習下mysql,看看mysql的原始碼,首先就需要把原始碼編譯,這是學習它的第一步。萬事開頭難,一點也沒錯,昨天晚上搞了很久沒有弄好,今天回來第一件事就是把這個解決。問題總算解決,對該過程總結如下 2 解壓 新建了目錄,mysql,然後把解壓的檔案全部放在了這檔案裡 3 準備環境和工具 4 ...

windows下使用vsc編譯除錯c 程式

vsc是乙個非常輕量級的編輯器,當我們編寫c 程式的時候,如果不是編寫大的工程專案,而只是自己學習c 或者演算法,使用vsc是非常方便的。在windows平台下,配合mingw編譯器,編寫和除錯小型cpp非常方便,使用方法如下。1,windows下安裝mingw w64編譯器 mingw w64 e...

Windows下使用DOS命令進入MySQL資料庫

開啟dos介面輸入net start mysql 進入安裝mysql的bin資料夾下 如 c program files mysql mysql server 5.7 bin 輸入mysql hlocalhost uroot p回車。其中 h表示伺服器名,localhost表示本地,u為資料庫使用者...