正確的編譯方法固然重要,但它只是提高MySQL伺服器效能工作的一部分。MySQL伺服器的許多參數會影響伺服器的效能表現,而且我們可以把這些參數儲存到設定檔,使得每次MySQL伺服器啟動時這些參數都自動發揮作用。這個設定檔就是my.cnf。
MySQL伺服器提供了my.cnf檔案的幾個樣本,它們可以在/usr/local/mysql/share/mysql/目錄下找到,名字分別為my-small.cnf、my-medium.cnf、my-large.cnf以及my-huge.cnf。檔案名稱字中關於規模的說明描述了該設定檔適用的系統類別型。例如,如果運行MySQL伺服器的系統記憶體不多,而且MySQL只是偶爾使用,那麼使用my-small.cnf設定檔最為理想,這個設定檔告訴mysqld daemon使用最少的系統資源。反之,如果MySQL伺服器用於支援一個大規模的線上商場,系統擁有2G的記憶體,那麼使用mysql-huge.cnf最為合適。
要使用上述樣本設定檔,我們應該先複製一個最適合要求的設定檔,並把它命名為my.cnf。這個複製得到的設定檔可以按照如下三種方式使用:
全域:把這個my.cnf檔案複製到伺服器的/etc目錄,此時檔案中所定義的參數將全域有效,即對該伺服器上啟動並執行所有MySQL資料庫伺服器都有效。
局部:把這個my.cnf檔案複製到[MYSQL-INSTALL-DIR]/var/將使該檔案只對指定的伺服器有效,其中[MYSQL-INSTALL-DIR]表示安裝MySQL的目錄。
使用者:最後,我們還可以把該檔案的作用範圍局限到指定的使用者,這隻需把my.cnf檔案複製到使用者的根目錄即可。
那麼,如何設定my.cnf檔案中的參數呢?或者進一步說,哪些參數是我們可以設定的呢?所有這些參數都對MySQL伺服器有著全域性的影響,但同時每一個參數都和MySQL的特定部分關係較為密切。例如,max_connections參數屬於mysqld一類。那麼,如何才能得知這一點呢?這隻需執行如下命令:
% >/usr/local/mysql/libexec/mysqld --help
該命令將顯示出和mysqld有關的各種選項和參數。要尋找這些參數非常方便,因為這些參數都在“Possible variables for option --set-variable (-O) are”這行內容的後面。找到這些參數之後,我們就可以在my.cnf檔案中按照如下方式設定所有這些參數:
set-variable = max_connections=100
這行代碼的效果是:同時串連MySQL伺服器的最大串連數量限制為100。不要忘了在my.cnf檔案[mysqld]小節加上一個set-variable指令,具體請參見設定檔中的樣本