本節列出了可以運行MySQL的操作系統。
我們使用GNU Autoconf,因此將MySQL移植到所有使用Posix線程和C++編譯器的現代系統是可能的。(要求服務器支持線程。如果只是編譯客戶端代碼,則只需要C++編譯器)。我們主要在Linux(SuSE和Red Hat)、FreeBSD和Sun Solaris(版本8和9)上使用并開發本軟件。
已經報告MySQL可以在下列操作系統/線程包的組合上成功地進行編譯。注意,對于很多操作系統,原生的線程僅支持最新的版本。
· 有原生線程的AIX 4.x和5.x。請參見2.12.5.3節,“IBM-AIX注意事項”。
· Amiga。
· 包括MIT-pthreads包的BSDI 2.x。請參見2.12.4.4節,“BSD/OS 2.x版注意事項”。
· 有原生線程的BSDI3.0,3.1和4.x。請參見2.12.4.4節,“BSD/OS 2.x版注意事項”。
· 有原生線程的Digital Unix 4.x。請參見2.12.5.5節,“Alpha-DEC-UNIX(Tru64)版注意事項”.。
· 包括MIT-pthreads包的FreeBSD 2.x。請參見2.12.4.1節,“FreeBSD注意事項”。
· 有原生線程的FreeBSD 3.x和4.x。請參見2.12.4.1節,“FreeBSD注意事項”。
· 有LinuxThreads的FreeBSD 4.x。請參見2.12.4.1節,“FreeBSD注意事項”。
· 有DCE線程或MIT-pthreads包的HP-UX 10.20。請參見2.12.5.1節,“HP-UX 10.20版注意事項”。
· 有原生線程的HP-UX 11.x。請參見2.12.5.2節,“HP-UX 11.x版注意事項”。
· 有LinuxThreads 0.7.1+或glibc 2.0.7+,適合各種CPU的Linux 2.0+。請參見2.12.1節,“Linux注意事項”。
· Mac OS X。請參見2.12.2節,“Mac OS X注意事項”。
· NetBSD 1.3/1.4 Intel和NetBSD 1.3 Alpha(需要GNU make)。請參見2.12.4.2節,“NetBSD注意事項”。
· Novell NetWare 6.0。請參見2.6節,“在NetWare中安裝MySQL”。
· 有原生線程的OpenBSD > 2.5。包括MIT-pthreads包的OpenBSD < 2.5。請參見2.12.4.3節,“OpenBSD 2.5版注意事項”。
· OS/2 Warp 3, FixPack 29和OS/2 Warp 4, FixPack 4. 參見2.12.6節,“OS/2注意事項”。
· 有最新FSU Pthreads移植包的SCO OpenServer 5.0.X。請參見2.12.5.8節,“SCO UNIX和OpenServer 5.0.x版注意事項”。
· SCO UnixWare 7.1.x。請參見2.12.5.9節,“SCO UnixWare 7.1.x和OpenUNIX 8.0.0版注意事項”。
· SCO Openserver 6.0.x。請參見2.12.5.10節,“SCO OpenServer 6.0.x版注意事項”。
· 有原生線程的SGI Irix 6.x。請參見2.12.5.7節,“SGI Irix注意事項”。
· SPARC和x86上有原生線程的Solaris 2.5和以上版本。請參見2.12.3節,“Solaris注意事項”。
· 包括MIT-pthreads包的SunOS 4.x。請參見2.12.3節,“Solaris注意事項”。
· Tru64 Unix。請參見2.12.5.5節,“Alpha-DEC-UNIX(Tru64)版注意事項”。
· Windows 9x、Me、NT、2000、XP和2003。請參見2.3節,“在Windows上安裝MySQL”。
并非所有支持的平臺同等適合運行MySQL。根據以下因素確定某個平臺適合高負荷關鍵任務MySQL服務器的程度:
· 線程庫的穩定性。可能某個平臺的反應不錯,但MySQL的穩定性取決于它所調用的線程庫,不管其它部分是否完善。
· 內核和線程庫利用均衡多處理器(SMP)系統的能力。換句話說,當進程創建一個線程時,應允許線程運行原進程所運行CPU之外的其它處理器。
· 內核和線程庫運行在短范圍頻繁獲取和釋放互斥體而不需要過多地交換內容的多個線程的能力。如果執行pthread_mutex_lock()時產生的CPU時間太短,則會嚴重影響MySQL。如果不關注該問題,增加過多的CPU實際會降低MySQL的速度。
· 常規文件系統的穩定性和性能。
· 如果數據庫表很大,文件系統處理大文件的能力和處理效率。
· 我們在該平臺上使用MySQL AB的經驗水平。如果我們熟悉一個平臺,我們可以對具體平臺進行優化并固定編譯時間。我們還可以提供建議如何更好地為MySQL配置系統。
· 我們在類似配置下所完成的內部測試的數量。
· 在同一平臺類似配置下成功運行MySQL的用戶數。如果該數字很高,則說明遇到具體平臺問題的幾率要小得多。
根據前面的標準,允許MySQL的最好的平臺是x86,安裝SuSE Linux,使用2.4或2.6內核,和ReiserFS(或類似Linux分發版)和安裝了 Solaris(2.7-9)的SPARC。FreeBSD排第三位,但我們真正希望一旦線程庫得到改進,它也可以提高排名。從某一觀點我們還希望提高其它MySQL目前正在上面編譯、允許的平臺的排名,但穩定性和性能上可以要求不同等級。這需要我們與MySQL所依賴的操作系統和庫組件開發人員共同努力。如果你對改進某個組件感興趣,可能影響其開發,需要更多的關于MySQL如何能運行得更好的說明,請向我們的MySQL internals發送郵件。請參見1.7.1.1節,“The MySQL郵件列表”。
請注意前面的對比并不是說一個操作系統總體上比另一個操作系統要好。我們只是討論選擇一個OS來專門運行MySQL。記住了這一點,如果考慮更多的因素,對比結果可能會不同。在某些情況下,一個OS比另一個OS好的原因只是我們已經為具體平臺做出了更多的努力來進行測試和優化。我們只是陳述我們的觀點幫助你選擇運行MySQL的平臺。