首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

MySQL 套件安裝不支援 GBK 編碼?ports 重編譯完美解決

     編輯:Java 相關知識

現象:GBK 編碼資料庫無法啟動

使用套件管理器安裝的 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 等亞洲常用編碼。

解決方案:使用 ports 重新編譯並指定字符集

  1. 進入 ports 目錄:cd /usr/ports/databases/mysql51-server
  2. 帶參數編譯安裝:
make WITH_CHARSET=gbk WITH_XCHARSET=all WITH_COLLATION=gbk_chinese_ci BUILD_STATIC=yes install clean

關鍵參數說明:

  • WITH_CHARSET=gbk:預設字符集設為 gbk
  • WITH_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 系統時採用此方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved