MySQL按照如下方法確定服務器字符集和服務器校對規則:
· 當服務器啟動時根據有效的選項設置
· 根據運行時的設定值
在服務器級別,確定方法很簡單。當啟動mysqld時,根據使用的初始選項設置來確定服務器字符集和 校對規則。可以使用--default-character-set設置字符集,并且可以在字符集后面為 校對規則添加--default-collation。如果沒有指定一個字符集,那就與--default-character-set=latin1相同。如果你僅指定了一個字符集(例如,latin1),但是沒有指定一個 校對規則,那就與--default-charset=latin1 --default-collation=latin1_swedish_ci相同,因為latin1_swedish_ci是latin1的默認校對規則。因此,以下三個命令有相同的效果:
shell> mysqld
shell> mysqld --default-character-set=latin1
shell> mysqld --default-character-set=latin1
--default-collation=latin1_swedish_ci
更改設定值的一個方法是通過重新編譯。如果希望在從源程序構建時更改默認服務器字符集和校對規則,使用:--with-charset和--with-collation作為configure的參量。例如:
shell> ./configure --with-charset=latin1
或者:
shell> ./configure --with-charset=latin1
--with-collation=latin1_german1_ci
mysqld和configure都驗證字符集/校對規則組合是否有效。如果無效,每個程序都顯示一個錯誤信息,然后終止。
當前的服務器字符集和校對規則可以用作character_set_server和collation_server系統變量的值。在運行時能夠改變這些變量的值。