mysql出現中文亂碼或不能輸入中文問題的Windows或Linux系統解決方法

       相信MySQL新手在剛接觸MySQL時總會遇到中文亂碼的問題,如ERROR 1366 (HY000): Incorrect string value。作爲新手,我也遇到過。不過以前沒系統地找過解決方法,最近因爲Linux要安裝MySQL,我遇到了在MySQL命令行中中文不能輸入和中文亂碼的問題,就查找解決方法解決,順帶把windows系統中文亂碼的問題給解決了。下面我將分別介紹如何在Windows和Linux系統解決類似的問題。

一. Windows環境下:

在mysql安裝目錄下找到my.ini文件,注意是安裝目錄下,而不是安裝目錄下的bin目錄下,否則修改了也不會生效我就犯了這樣的錯誤。如果安裝目錄下沒有,就把my-medium.ini複製(注意是複製,不要覆蓋或刪除掉,以防可能出現未知的錯誤)重命名爲my.ini,然後做如下添加:
[client]
default-character-set=utf8

[mysqld]
collation-server=utf8_general_ci
character_set_server=utf8

[mysql]
default-character-set=utf8

然後重啓mysql服務(net start mysql)即可。在命令行輸入status或show variables like 'character%';發現編碼方式變成了utf8。



二. Linux環境下:(注:我的系統是Centos7.2 64位,用RPM方式安裝的MySQL,不一樣的系統和安裝方式可能處理方法不一樣。)

mysql不支持輸入中文的解決方法:可能是因爲shell不支持中文,這是Linux環境配置問題,需要打開locale.conf文件,即vim /etc/locale.conf,然後做如下修改:
LANG="en_US.UTF-8"。

mysql中文亂碼出現ERROR 1366 (HY000): Incorrect string value錯誤解決方法:
1.直接解決方法通過改配置文件:
#vim /etc/my.cnf(5.5以後MySQL) 做如下添加:
[client]
        port=3306
        default-character-set=utf8


[mysql]
        default-character-set=utf8


[mysqld]
collation-server=utf8_general_ci
character_set_server=utf8

然後重啓mysql服務,在命令行輸入status或show variables like 'character%';發現編碼方式變成了utf8。


2.間接解決方法通過修改數據庫、表的編碼方式
建表之前指定編碼方式:create table  tablename (...) default charset=utf8
改變已建立的數據庫:alter database databasename character set utf8;
改變已建立的表:alter table tablename convert to character set utf8;


發佈了21 篇原創文章 · 獲贊 27 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章