MySQL服務器有一個服務器字符集和一個服務器校對規則,它們均不能設置為空。
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系統變量的值。在運行時能夠改變這些變量的值。