MySQL 8.4 發行說明
MySQL 伺服器具有伺服器字元集和伺服器校對。預設情況下,這些是 utf8mb4
和 utf8mb4_0900_ai_ci
,但它們可以在伺服器啟動時在命令列或選項檔案中明確設定,並在執行階段變更。
最初,伺服器字元集和校對取決於您啟動 mysqld 時使用的選項。您可以使用 --character-set-server
設定字元集。同時,您可以新增 --collation-server
設定校對。如果您沒有指定字元集,這相當於說 --character-set-server=utf8mb4
。如果您僅指定字元集(例如,utf8mb4
)但未指定校對,這相當於說 --character-set-server=utf8mb4
--collation-server=utf8mb4_0900_ai_ci
,因為 utf8mb4_0900_ai_ci
是 utf8mb4
的預設校對。因此,以下三個命令都具有相同的效果
mysqld
mysqld --character-set-server=utf8mb4
mysqld --character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_ci
變更設定的一種方法是重新編譯。若要在從原始碼建置時變更預設伺服器字元集和校對,請使用 CMake 的 DEFAULT_CHARSET
和 DEFAULT_COLLATION
選項。例如
cmake . -DDEFAULT_CHARSET=latin1
或者
cmake . -DDEFAULT_CHARSET=latin1 \
-DDEFAULT_COLLATION=latin1_german1_ci
mysqld 和 CMake 都會驗證字元集/校對組合是否有效。如果無效,每個程式都會顯示錯誤訊息並終止。
如果未在 CREATE DATABASE
陳述式中指定資料庫字元集和校對,則伺服器字元集和校對會用作預設值。它們沒有其他用途。
目前的伺服器字元集和校對可以從 character_set_server
和 collation_server
系統變數的值確定。這些變數可以在執行階段變更。