mysql: Character set 'utf-8' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index' file
版本資訊
OS: Linux
MySQL:3.23.54
我個人使用 MySQL,都是自行抓取原始程式碼編譯安裝。從 3.23.xx 一直玩到 4.0.x。但是,因為工作的關係,已經一年多沒有碰觸 MySQL 了。僅記憶所及,大略說說。
MySQL 對於編碼的支援,其實大多只要在編譯時指定,作為預設值,或是作為支援的編碼,使用上都不會有問題。
而我發現,那些跟 MySQL 編碼奮鬥的,大多使用作業系統的套件管理程式來安裝。偏偏,那些 MySQL 套件,基本上不支援 Big5 或 UTF-8。於是,他們將腦筋動到 PHP 上面來。
我是 PHP 白痴。不過,在 Linux 跟 BSD 上頭跑的 PHP 程式,因為 MySQL 是自己編譯的,該支援的語系,老早就編譯進去,PHP 程式碼根本不用作任何更動,至今尚未發生編碼錯誤的情況。
當然,PHP, Apache 等, 我也是自己編譯。
我只會系統維護與管理,懂一些 shell script,不懂 PHP。
一點兒個人經驗,提供給 snaking 參考。
現在來回好像有點晚了...
不過小弟目前基本上從 MySQL 4.1 以後都是用 system 的 rpm , 而非使用 tar.gz 的...
MySQL 4.1 以後並不需要特別去重新編譯 MySQL 來預設特定語系...
只要設定好 my.cnf 的 mysqld 區段 , 以及搭配 client 的 set names xxxx 基本上可以解決大部分的問題...
不過目前我還是以 utf8 為主要使用環境,而非 big5...