首先要作出決策,你是否想要使用最新的開發版本或最終的穩定版本。在MySQL開發過程中,同時存在多個發布系列,每個發布處在成熟度的不同階段:
·MySQL 5.2是最新開發的發布系列,是將執行新功能的系列。不久的將來可以使用Alpha發行,以便感興趣的用戶進行廣泛的測試。
·MySQL 5.1是當前穩定(產品質量)發布系列。只針對漏洞修復重新發布;沒有增加會影響穩定性的新功能。
·MySQL 5.0是前一穩定(產品質量)發布系列。只針對嚴重漏洞修復和安全修復重新發布;沒有增加會影響該系列的重要功能。
·MySQL 4.0和3.23是舊的穩定(產品質量)發布系列。該版本不再使用,新的發布只用來修復特別嚴重的漏洞(以前的安全問題)。
我們不認為有完全的凍結版,因為任何版本均需要對漏洞進行修復和其它修復。對於“某種程度的凍結”,我們是指我們可以在產品發布中增加一些不會影響當前工作的小東西。自然,前一系列的相關漏洞修復會移植到後面的系列。
通常, 如果你是第一次開始使用MySQL或想要將它移植到一些還沒有二進制分發版的系統上,我們推薦使用最終的穩定版本。目前是MySQL 5.1。我們已經使用MySQL基准對所有MySQL發布進行了檢查,包括來自開發系列的發布,在發布前還使用基准套件來測試它。
如果你正在運行一個老的系統並且想要升級,但是又不想冒險進行非無縫升級,應該升級到最新版本中你正使用的相同的發布系列(只有版本號的最後部分比你使用的新)。我們已經試著僅修復致命缺陷,對那個版本進行了很小的相對安全的改動。
如果你想要使用產品發布系列中所沒有的新功能,你可以使用開發系列的版本。請注意開發發布不如產品發布穩定。
如果你想要使用包含所有最新補丁和漏洞修復的最新源碼,可以使用我們的BitKeeper庫。這些庫還沒有發布,但可以預覽代碼,將來的發布基於這些代碼。
MySQL的命名機制使用由3個數字和一個後綴組成的版本號。例如,像MySQL-5.0.9-beta的版本號這樣解釋:
·第1個數字(5)是主版本號,描述了文件格式。所有版本5的發行都有相同的文件格式。
·第2個數字(0)是發行級別。主版本號和發行級別組合到一起便構成了發行序列號。
·第3個數字(9)是在此發行系列的版本號,隨每個新分發版遞增。通常你需要已經選擇的發行(release)的最新版本(版本)。
每次更新後,版本字符串的最後一個數字遞增。如果相對於前一個版本增加了新功能或有微小的不兼容性,字符串的第二個數字遞增。如果文件格式改變,第一個數字遞增。
後綴顯示發行的穩定性級別。通過一系列後綴顯示如何改進穩定性。可能的後綴有:
·alpha表明發行包含大量未被徹底測試的新代碼。已知的缺陷應該在新聞小節被記錄。
在大多數alpha版本中也有新的命令和擴展。alpha版本也可能有主要代碼更改等開發。但我們在發布前一定對其進行測試。
·beta意味著該版本功能是完整的,並且所有的新代碼被測試了,沒有增加重要的新特征,應該沒有已知的缺陷。當alpha版本至少一個月沒有出現報導的致命漏洞,並且沒有計劃增加導致已經實施的功能不穩定的新功能時,版本則從alpha版變為beta版。
在以後的beta版、發布版或產品發布中,所有API、外部可視結構和SQL命令列均不再更改。
·rc是發布代表;是一個發行了一段時間的beta版本,看起來應該運行正常。只增加了很小的修復。(發布代表即以前所稱的gamma 版)
·如果沒有後綴,這意味著該版本已經在很多地方運行一段時間了,而且沒有非平台特定的缺陷報告。只增加了關鍵漏洞修復修復。這就是我們稱為一個產品(穩定)或“通用”版本的東西。
MySQL的命名機制於其它產品稍有不同。一般情況,我們可以很放心地使用已經投放市場兩周而沒有被相同發布系列的新版本所代替的版本。
MySQL所有版本都經過我們的標准測試和基准測試運行,以保證它們可相當安全地使用。因為標准測試不斷擴充以檢測以前發現的缺陷,測試套件一直在改進之中。
所有版本都至少已經用下列套件進行了測試:
·一個內部測試套件
MySQL-test目錄包含一整套測試案例。我們針對每個二進制服務器進行這些測試。
·MySQL基准套件
它運行一定范圍的普通查詢。它也是一個測試,檢測最新的優化處理是否真的使代碼更快。
·crash-me測試
這嘗試決定數據庫支持什麼功能和它的能力與限制是什麼。
另一個測試是在內部生產環境中使用最新MySQL版本,至少在一台機器上。我們有超過100GB的數據可供使用。