寫這篇文章的目的只是告訴朋友們如何編譯MySQL代碼,或許有些人覺得從Windows平台編譯MySQL的代 碼有些複雜,其實不然。如果您對本文中所提到的知識有任何疑問可以透過CSDN的MySQL板或者 MySQL@CHINA支援論壇尋求協助。這篇文章中所提到的東西沒有任何的創新性,只是對MySQL已有文檔的總 結。
一、為什麼要編譯代碼
我不知道閱讀這篇文章的朋友你是否會注意MySQL手冊。MySQL線上手冊近期呈現一種“超越”趨勢, 手冊中所描述的內容很大部分都是開發版本中才能找到的,我希望自己在閱讀的同時獲得實驗的機會。同 時,我也和其他朋友一樣痛恨軟體中存在各種BUG,所以我要自己編譯代碼。當然,最開始我的初衷是希 望藉助Intel C++重新編譯MySQL的代碼擷取更好的效能。
二、編譯代碼要如何準備
這一部分包含下列要點,請務必注意。
■ 編譯器
■ Cygwin
■ 記憶體
■ 耐心
編譯器,編譯MySQL代碼可以使用Cygwin下的GCC以及VC6.0,VC7.1。如果您使用Intel C++的話,我建 議您配合VC6.0使用。不推薦使用VC 7.0的原因是其本身所存在的BUG(已經修複,但不公開提供),如果 不裝補丁的話那麼會造成錯誤(關於inline最佳化可以暫時解決)。VC6.0請安裝SP4或SP5以及對應的處理 器支援補丁包。
Cygwin,MySQL的代碼絕大部分是在Linux編寫,所以很多工具 + 生產力以及配置指令碼都是*nix風格,因此 我們需要藉助Cygwin這一 Unix 類比環境。安裝時請選擇上 autoconf automake gnu make libtool bison perl。另外一點,MySQL的開發使用bk進行管理,而bk的用戶端也需要藉助cygwin運行。如果只想 編譯官方發布的Windows代碼,那麼可以不去關心這些。
記憶體,編譯MySQL代碼非常消耗時間,至少我是這麼覺得。我建議有一個足夠大記憶體的機器,否則會讓 你有種生不如死的感覺。
耐心,第一次編譯MySQL尤其是開發中的代碼難免會遇到各種各樣的麻煩,嘗試去克服它們。沒有人第 一次就應該成功,假設連這些小問題都無法解決那麼談何閱讀代碼?所以,多少給自己點信心,也多少有 些耐心。
三、擷取資源
除了編譯器、cygwin之外我們還需要準備bk的用戶端,可以下載回來。當準備妥當工具後我們訪問 mysql.bkbits.net ,在這裡我們可以看到一個表格。這裡的表格每一項目都對應著一個mysql的項目,我 們關心的是名為 mysql-4.1的項目,這是目前的主要工作重點 MySQL 4.1.x 版本的開發樹。
擷取代碼:
shell> bk clone bk://mysql.bkbits.net/mysql-4.1 mysql-4.1
更新代碼:
shell> bk pull bk://mysql.bkbits.net/mysql-4.1 mysql-4.1