使用套件管理器安裝的 MySQL 5.1 預設僅支援 UTF-8。嘗試開啟 GBK 編碼的資料庫時,報錯:
ERROR 1273 (HY000): Unknown collation 'gbk_chinese_ci' in table 'data_plus' definition
執行 SET NAMES gbk 或 SET character_set_client = gbk 亦報:
ERROR 1115 (42000): Unknown character set: 'gbk'
預編譯套件為了體積精簡,僅包含 utf8、latin1 等極少數字符集,未包含 gbk、big5 等亞洲常用編碼。
cd /usr/ports/databases/mysql51-servermake WITH_CHARSET=gbk WITH_XCHARSET=all WITH_COLLATION=gbk_chinese_ci BUILD_STATIC=yes install clean
關鍵參數說明:
WITH_CHARSET=gbk:預設字符集設為 gbkWITH_XCHARSET=all:編譯支援所有額外字符集WITH_COLLATION=gbk_chinese_ci:預設校對規則BUILD_STATIC=yes:靜態編譯,減少運行時依賴實際操作中,make install clean 過程會互動式提示這三個參數,直接輸入即可。
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
輸出應包含 gbk 及 gbk_chinese_ci,即代表支援生效。
若專案允許,新專案建議統一使用 utf8mb4 避免編碼坑;僅在維護老舊 GBK 系統時採用此方案。