在debian環境下,徹底解決mysql無法插入和顯示中文的問題
Linux下Mysql插入中文顯示亂碼解決方案
mysql -uroot -p 回車輸入密碼
進入mysql查看狀態如下:
默認的是客戶端和服務器都用了latin1,所以會亂碼。
解決方案:
mysql>user mydb;
mysql>alter database mydb character set utf8;!
上文提到了用臨時方法更改數據庫的字符集設置,顯示中文,但是後來發現在有的系統下並不能成功。
比如我用的debian 7.0,找了好久終於找到一個適合debian系統的解決方案,debian 7.0下測試成功,其他諸如修改client和mysql加入default-character-set=utf8的方法之類的,只適用與5.5以前的系統!
終極決絕方案,一勞永逸:
debian下mysql的字符串修改為utf8(參考:rainysia的專欄)
一、進入mysql(mysql -uroot -p),查看當前數據庫字符集(status;)
二、查看當前系統版本(lsb_release -a)
三、#vim /etc/mysql/my.cnf 。(5.5以前系統)在【client】下面加入 default-character-set=utf8
在【mysqld】下面加入default-character-set=utf8
Notice:注意 如果修改後不能啟動報錯試試把default-character-set=utf8改為character_set_server=utf8,僅僅加入到mysqld下面的.client就不需要加了
四、#vim /etc/mysql/my.cnf 。(5.5以後系統)如下修改:
[client]
default-character-set=utf8
[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
五、重啟mysql(/etc/init.d/mysql stop /etc/init.d/mysql start)
六、修成成功,進入mysql查看字符集(mysql>show variables like ‘character_set_%’;)
Mysql無法插入中文