[精讚] [會員登入]
1178

[MySQL] console mode 的亂碼處理

使用MySQL的console mode如果出現亂碼 在,要怎麼處理?

分享此文連結 //n.sfs.tw/10487

分享連結 [MySQL] console mode 的亂碼處理@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-01-01 23:08:29 最後編修
2016-12-25 13:37:44 By 張○○
 

自動目錄

有時我們還是會在 MySQL 的console進行操作,但如果選取在印出中文字時出現亂碼,如下的情況:

mysql> select `p_name` from `tables`;
+------------+
| p_name     |
+------------+
| ????022    |
| ????51     |
| ????003    |
| ????118    |
| ????054    |

   ---- 以下略 ----

怎麼辦?

這時我們先來查看預設的編碼:

mysql> show variables like 'character%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     |
latin1                           |
| character_set_connection |
latin1                           |
| character_set_database   |
latin1                           |
| character_set_filesystem | binary                           |
| character_set_results    |
latin1                           |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+

8 rows in set (0.00 sec)

這時我們可以用偷懶的方法:

mysql> set names utf8;

他會改變character_set_client、character_set_connection、character_set_results 這三個參數

這樣就解決亂碼的問題。

事實上,我們只要改變character_set_results  這個參數設定成正確的編碼即可:

mysql> set character_set_results =utf8;

以上是 runtime 的解決法,如果要永久設定,就需要修改 my.cnf

# vi /etc/my.cnf

在找到[mysqld] 欄目在其中添加

init_connect='SET NAMES utf8'

上面的設定是讓client 端每次連接資料庫,首先會執行 init_connect 內之sql語句。但要注意的是 init_connect 對於如root等具有SUPER privilege的用戶會無效。

另一種方法是讓編碼方式全部改為 utf8

default-character-set=utf8

備註

註:剛安裝完畢時是沒有 my.cnf 這個檔案,我們要去尋找樣版並把他拷到 /etc/my.cnf

[FREEBSD]

在freebsd 中他的樣版檔是放在
/usr/local/share/mysql/my-small.cnf
/usr/local/share/mysql/my-medium.cnf
/usr/local/share/mysql/my-large.cnf
/usr/local/share/mysql/my-huge.cnf
/usr/local/share/mysql/my-innodb-heavy-4G.cnf

或是
/usr/ports/databases/mysqlxx-server/work/mysql-5.x.x/support-files/my-zzz.cnf   xx是版本號,zzz是模版類別

[Centos]

樣版檔是放在 /usr/share/mysql/

只要選定合適的設定,把他複製為 /etc/my.cnf 就可以了,我的習慣是專門用 mysql 的機器,我會複製 my-huge 這個檔,和www共用的機器,我會複製 my-large 這個檔。


原文編自 2010-03-08 13:13:06

END

你可能感興趣的文章

[Mysql] 修改欄位的自動索引值autoindex (auto_increment ) Mysql 新增、刪除、修改、查看欄位的自動索引值autoindex (auto_increment)

[Mysql/MariaDB] 查看資料庫所占空間 查看資料庫在磁碟中所占空間

[Mysql/MariaDB] 使用Memory引擎修改及設定最大值的方法 Mysql/MariaDB 使用Memory引擎預設是16MB,修改及設定最大值的方法。

[Mysql/Mariadb] 查看使用狀態,抓出可疑慢查詢SQL 當Mysql 的負載loading飆高時,除了重新啟動外,如果想對症下藥,那該怎麼處理?

[Mysql/MariaDB] 清除及設定 MySQL 的死連接 mysql 伺服器若有太多的連接,無疑的會耗用非常多的資源,若資源耗盡會影響新的連線,勢必要做一些調整

[Mysql/Mariadb] 檢查、修復及優化資料庫 mysql/mariadb 檢查、修復及優化資料庫

我有話要說

>>

限制:留言最高字數1000字。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

維修冰箱 維修冰箱

外匯課程經驗 有天遇到某個朋友的正妹朋友,說她有個很棒的外匯投資課程,要我們去聽,只收場地費200大洋。她又說續效最差一個月也有1%,誰還在苦哈哈上班?

[CodeIgniter 3] 資料庫的使用方法整理2/2 CI3 承襲 CI2,有很多的builder class可以用,依各人的使用習慣,有人喜歡一堆sql字串,有人喜歡用helper

[Wildfly10] 發佈war檔 deploy war file onto wildfly10