MySQL 9.0 版本資訊
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
系統變數的值中判斷。這些變數可以在執行階段變更。