先來談談沒有加 charset (預設字集) 會怎樣,主要是遇到中文字會有問題。
1.使用 SQL 的 like 指令時,使用英文字母做搜尋,只要某個中文單字內碼跟搜尋的英文字母一樣,也會被 select 出來。(如「建」這個字,用英文字「x 」一樣找的到)
2.就是常見的「許、功、蓋」等,內碼含 "\" 字元的中文字,全部都會造成寫入或讀取資料庫失敗。
這時我們就必須指定 charset (預設字集)是 big5 了。但不是用 tarball 安裝 mysql 的話,自然不可能下 --with-charset=big5 了,所以必須做個小手術來讓 MySQL 知道我們的資料庫主要用的字集是 big5 。
先到 /usr/share/mysql/ 依照你的記憶體需求來選一個 cnf 檔。(需要的記憶體配置在各檔檔頭都有)
如果沒有特別需求,就直接用 my-medium.cnf 就可以了。然後放到 /etc 並改名為 my.cnf,指令如下:
#cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
再來就是修改 my.cnf
#vi /etc/my.cnf
找到以下內容
[mysqld]
port=3306
socket=/usr/lib/mysql/mysql.sock
default-character-set=big5 //自行加入這一即可,也就是設定預設字集為 big5
存檔後只要重新啟動 MySQL 就可以了:
#service mysql restart
這樣就完成更改的動作了,而且資料庫中若有 UTF-8 字集的資料存取也都不會受影響,很方便吧! ^_^
|