iT邦幫忙

0

CentOS MySQL 中文問題

請教一下
在 CentOS 上面,不管是 SHOW FULL COLUMNS FROM xxx;
或者是想要 INSERT UPDATE 資料,只要使用中文都會變成問號
該怎樣修正才可以正確看到呢?

2 個回答

4
raytracy
iT邦大神 1 級 ‧ 2011-07-11 19:12:34
最佳解答

/etc/my.cnf

<pre class="c" name="code">[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'

[client]
default-character-set=utf8

我不會寫程式, 只會上面這個....樓下請補充....

chan15 iT邦新手 5 級 ‧ 2011-07-11 20:28:10 檢舉

It's work, thanks :)

6
wiseguy
iT邦超人 1 級 ‧ 2011-07-12 00:28:56

在最最一般的情況下,使用樓上的設定即可。
但如果你的資料庫裡面有多個 DB 使用不同語系,有多個 table 使用不同語系、甚至到各欄位使用不同語系,又要提供不同語系 client 來連、甚至有不同程式語言開發的 client 來使用,不同版本 mysql client 來連 .... 這麼複雜的情況,只需要把其中一個設定改成:

<pre class="c" name="code">init-connect='SET NAMES binary'

以上什麼亂七八糟的語系,一概服服貼貼,從此告別 MySQL 語系夢魘。這是小弟使用 MySQL 八年以上的終極設定。
PS. 此指令的目的在於讓 client 與 server 資料交流時,以 as-is 模式 (是什麼就是什麼,不要做任何語系轉換)來傳送。

chan15 iT邦新手 5 級 ‧ 2011-07-12 11:26:42 檢舉

目前是這樣進去 MySQL 就可以正常
mysql -u root -p --default-character-set=utf8

chan15 iT邦新手 5 級 ‧ 2011-07-12 11:52:28 檢舉

不過這些動作在 Windows 下安裝的 MySQL
用命令提示字元進去看會是亂碼好像還是無解
lol

wiseguy iT邦超人 1 級 ‧ 2011-07-13 00:13:58 檢舉

喔!那真是誤會大了!你在命令提示字元視窗下 dump 出 UTF-8 當然是亂碼。
建議用個 GUI client 吧。
http://www.heidisql.com/

我要發表回答

立即登入回答