MySQL 使用 rpm 安裝後,修改 charset 設定的方法!

先來談談沒有加 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

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar