天天看點

linux中修改mysql的預設編碼(character_set_server)解決插入亂碼問題

 show variables like 'character%';

如果現實-bash: show: command not found 說明沒有登入mysql資料庫,需要進行登入

結果如下圖所示:

<a href="http://itblood.com/wp-content/uploads/2012/07/%E6%9F%A5%E8%AF%A2mysql%E5%8E%9F%E5%A7%8B%E7%BC%96%E7%A0%81.jpg" target="_blank"></a>

目錄為/etc/my.cnf

如果系統中沒有my.cnf檔案、則需要建立此檔案,具體步驟請看3,如果存在,直接跳過步驟3,直接進入步驟4

指令find / -iname *.cnf -print

結果如圖:

<a href="http://itblood.com/wp-content/uploads/2012/07/%E6%9F%A5%E6%89%BEmy.cnf%E6%96%87%E4%BB%B6.jpg" target="_blank"></a>

将上面搜尋結果集中/usr/share/mysql目錄下任意的一個檔案複制到/etc/目錄下

指令:cp /usr/share/mysql/my-large.cnf   /etc/my.cnf

指令:vi /etc/my,cnf

在[client ]下面加入

default-character-set=utf8

在[ mysqld ] 下面加

character_set_server=utf8

 init_connect=’SET NAMES utf8′(或者是SET NAMES ‘utf8′)

網上說在 [ mysql ] 下面加入

我測試了下是不可以,因為mysqld不識别它,是以我改成character_set_server=utf8

service mysql restart

下文附上我自己的處理情況供參考

我的問題:隻有一項未改成utf8 (character_set_server=latinl)

操作:

    1、指令:vi /etc/my.cnf

    2、配置檔案中沒有[client ]節點,是以就在[ mysqld ] 下面加character_set_server=utf8

    3、/etc/init.d/mysqld restart (這是我的重新開機方式)

  4、show variables like ‘character%’; (再檢視就已經該過來了,測試發現亂碼問題已解決)

本文轉自 藝晨光 51CTO部落格,原文連結:http://blog.51cto.com/ycgit/1783775,如需轉載請自行聯系原作者