先來談談沒有加 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 字集的資料存取也都不會受影響,很方便吧! ^_^
7 comments On MySQL 使用 rpm 安裝後,修改 charset 設定的方法!
Well
小弟試著拿手邊的FC1來修改
結果沒用說@@
唉…看來只好重新編譯啦>”<
不過這個站真的是太多寶藏了
我現在幾乎都天天來耶^_^
感謝站長分享囉 呵呵
因為我這邊的環境是 RedHat 9 ,而 Fedora Core 1 的 package 安裝 mysql 的路徑可能會跟 RedHat 9 的不同,主要需要先確定 mysql 讀的 my.cnf 是在哪裡,可以先下 #locate my.cnf 看看是在哪個目錄下再做修改。
謝謝你的支持,讓我更有動力寫下去啦,呵呵! ^^
感謝您,我用這種方法解決許功蓋的問題。
我是用Red Hat9。
呵呵
我確定過位置了
的確是/etc/my.cnf
也重新啟動mysql了
可是怎麼改都沒有效果…>_<
以下是我的設定檔
————————-
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=big5
[mysql.server]
user=mysql
basedir=/var/lib
[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=big5
————————————-
算囉
我還是重新編譯一次好了^_^
我的是FC3
改了之後就OK耶
謝謝您
我會常來的
加油!!
加油!!
大家一起加油!!
再請教一下
許功蓋沒問題了
但有些不常用的字還是又問題
例如”綉”,”双”….
這又要怎麼處理呢?
感謝
我改了…fc3..不能啟動..mysql
請問樓上大大..你的fc3是改那..可否告知…3q