突然想學習下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為資料庫使用者...