Ubuntu下MySQL中文亂碼解決

來源:互聯網
上載者:User

對於MySQL中文亂碼問題(我的是Ubuntu Linux系統),在網上看了很多解決方案,很多說要修改MySQL的設定檔,於是我按照下面的方法修改:
方法來自:http://www.cnblogs.com/flyingcloude/archive/2012/09/09/2677569.html

修改/etc/mysql/my.cnfsudo gedit /etc/mysql/my.cnf在my.cnf檔案中的[client]段和 [mysqld]段加上以下兩行內容:[client]default-character-set=utf8[mysqld]default-character-set=utf8重新啟動MySQL:sudo /etc/init.d/mysql restart查看一下現在mysql的編碼mysql>show variables like 'character%';+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+| character_set_client | utf8 || character_set_connection | utf8 || character_set_database | utf8 || character_set_filesystem | binary || character_set_results | utf8 || character_set_server | utf8 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql/charsets/ |+--------------------------+----------------------------+

我發現,修改之後MySQL無法啟動了,試了很多方法都不行。最後發現,將設定檔還原後,MySQl就能正常啟動了!這個很奇怪,真不知道是怎麼回事。我修改資料庫的編碼方式為utf8後,仍然不行。我查詢出的的character_set_server總是latin1字元集。
最後經過N此實驗發現,character_set_server=latin1沒關係。備份之前的資料庫,然後重建資料庫,重建時,選擇字元集為 utf8 - default collation ,然後匯入資料,發現中文不在亂碼了。見所示:

但是對於已經存在的資料庫,通過修改資料庫Alter DataBase...還是不能解決亂碼問題。

而且對於網上說的,在mysql命令列中使用SET命令重新設定字元集,根本沒用,關閉串連後,再次串連,查詢發現,字元集又變成latin1了,很是鬱悶。網上的設定方式如下(我沒成功):

mysql> set character_set_server=utf8;mysql> set character_set_database=utf8;

當前我只找到了這個方法——重建資料庫。如果有更好的方法,多謝賜教!

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.