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為資料庫使用者...