mysql中文亂碼的解決辦法:1、在linux環境下找到my.cnf文件并進行編碼修改;2、在windows下修改my.ini文件;3、在使用過程中強制設置字符集編碼。
推薦:《mysql視頻教程》
一.簡介
MySQL默認latin1(其實就是ISO-8859-1)字符集。這顯然不能滿足我們的需要,因此我們把它調整為UTF8字符集,以兼容大多數字符集。
1. 先來執行兩條SQL,來檢測下當前的MySQL默認字符集編碼:
Sql命令:
mysql>show?variables?like?“%colla%”;? ?
?????
Sql命令:
mysql>show?variables?like?“%char%”;?
? ?
二.修改字符集為UTF-8
需要修改MySQL配置文件my.cnf文件,Windows環境則是my.ini文件。
通常在linux環境下my.cnf文件位于/etc/mysql/my.cnf(/etc/my.cnf)路徑下,但由于安裝版本或是系統環境的不同,我們可能無法在這個目錄中找到該文件
1.Linux下修改方法
?? 修改mysql的配置文件,由于新裝的mysql有可能在etc下沒有my.cnf
?? 這是需要自己創建一個。查找一個my-medium.cnf 文件,然后復制到etc文件夾下命令為:cp /usr/share/doc/MySQL-server-5.5.24/my-medium.cnf /etc/my.cnf
Shell代碼:
#echo?修改my.cnf文件 ??
#sudo?vi?/etc/my.cnf??
在[client]下加入代碼:
????? default-character-set=UTF8
在[mysqld]下加入代碼:
????? character_set_server=utf8
在[ mysql ]下加入代碼:
????? default-character-set=utf8
部分圖像如下:
修改成功后重新啟動mysql數據庫。
Shell命令:
service mysql restart
有時候數據庫service mysql start啟動成功,卻只能在root用mysql命令,可能是因為防火墻沒有關閉,使用下面命令解決問題:
????????????????? service iptables stop
然后查詢字符集:
show variables like ‘%character%’;
? show variables like “%colla%”;
成功圖像如下:
2.Windows下修改方法
MySQL安裝目錄下的my-default.ini改為my.ini文件
[client]節點
default-character-set=utf8??? (增加)
[mysql]節點
default-character-set=utf8??? (修改)
[mysqld]節點
character_set_server=utf8??? (修改)
修改完畢后使用
net stop mysql
net start mysql
重新啟動mysql服務
然后查詢字符集:
??show variables like ‘%character%’;
? show variables like “%colla%”;
3.在使用過程中強制設置字符集編碼
為確保字符集完全統一,在建表、建庫的時候要強制設定統一字符集。
另外通過JDBC連接MySQL的時候為確保萬無一失,連接字符串需要加上以下參數:
jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8??