在舊版 MySQL(如 5.1.73)中啟動客戶端時,可能遇到 mysql: unknown variable 'character-set-client=utf8' 錯誤。這通常是因為配置檔 /etc/my.cnf 中在 [client] 區段使用了該版本不支援的參數導致。
檢查配置檔發現如下內容:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
default-character-set=utf8
character-set-server=utf8
[client]
default-character-set=utf8
character-set-client=utf8
[mysql]
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
直接在 [client] 區段將 character-set-client=utf8 註解掉或刪除,保留 default-character-set=utf8 即可。修改後重新登入 MySQL 即可正常連線。
在參數前加上 loose- 前綴,告訴 MySQL 若不識別該參數則跳過並僅發出警告,不中斷啟動:
[client]
default-character-set=utf8
loose-character-set-client=utf8
此法同樣能解決問題,且保留了配置的完整性。
說明:此問題常見於 MySQL 5.1 等舊版本,新版本(5.5+)通常已支援該參數。若無特殊需求,建議升級至較新版本以獲得更好的相容性與效能。