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

2021-06-06 20:15:13 字數 1292 閱讀 5860

突然想學習下mysql,看看mysql的原始碼,首先就需要把原始碼編譯,這是學習它的第一步。

萬事開頭難,一點也沒錯,昨天晚上搞了很久沒有弄好,今天回來第一件事就是把這個解決。問題總算解決,對該過程總結如下:

2、解壓

新建了目錄,mysql,然後把解壓的檔案全部放在了這檔案裡

3、準備環境和工具

4、cmake工具生成.sln專案檔案

使用的是vs2008:cmake . -g "visual studio 9 2008"或直接用cmake的介面,執行這一步後,.sln就生成了

5、修改sql_locale.cc檔案

使用ultraedit或editplus工具修改檔案的格式,轉換成utf-8,網上有些選擇utf-8 without bom,但是我試了,編譯會報錯,所以只要轉換成utf-8即可

6、編譯

開啟專案檔案,然後編譯mysqld專案,如果有錯,再編譯一次,一般來講這樣就應該好了,如果不行就多編譯幾次了

7、啟動除錯

進入根目錄,即sql\debug 執行mysqld.exe --debug --standalone,但是會報錯

assertion failed: 0, file .\mysqld.cc, line 4198

檢視了該原始檔,是乙個斷言,注釋該斷言後,再次執行就可以啟動伺服器了

如果想使用vs除錯,則使用在vs中啟動mysqld。

如果還不可以,則檢視sql\data目錄下是否有資料檔案,如果沒有可以把安裝版下的資料檔案拷入data目錄中,然後再啟動該mysql

這樣mysql伺服器就啟動了

8、結束語

通過對mysql原始碼的編譯,發現主要問題存在幾個:

(1)bison工具存在的問題

第一次我的bison環境沒有新增到path中,導致使用cmake工具生成sln時,總是出現紅色字型,bison無法找到。如果使用cmake時,bison路徑沒有新增到變數環境中,則新增後,建議重啟電腦,否則cmake可能還是找不到bison

(2)sql_locale.cc檔案

網上都說這個檔案會出錯,我想也沒想就認為是這樣的,以前也編譯過mysql,的確會出錯,所以對這個檔案,應盡量把其格式轉換成utf-8格式

(3)程式設計成功後,啟動出錯

我啟動時,報錯「assertion failed: 0, file .\mysqld.cc, line 4198」,這個主要是斷言出錯,可能是這個版本才存在的問題,如果是該錯誤,只要注釋掉該行**即可

(4)資料檔案

如果資料檔案不存在,則直接把安裝版的資料檔案拷入到原始碼目錄的sql\data中,這樣處理更加簡單

windows下編譯除錯mysql

mysql在類linux環境下的編譯 除錯相信大家都應該有所了解,和其他的gnu工具沒有兩樣 configure make gdb。當然具體的引數選項可能會很多,可以參考官方文件。用到的工具 vs2005 bison cmake 1.在win下配置好bison cmake的環境變數,注意安裝這兩個工...

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