一般在安裝完MySQL後,咱們須要對MySQL字符集進行相關設置。
咱們以
Linux(Ubuntu)
環境描述具體操做,
Unux
與其基本一致,
Windows
路徑配置上少有不一樣。
咱們將討論如下幾個問題:
- 字符集問題表徵
- 修正配置,設置默認字符集編碼
- 在使用過程當中強制設置字符集編碼
1.字符集問題表徵
MySQL默認
latin1
(其實就是
ISO-8859-1
)字符集。這顯然不能知足咱們的須要,所以咱們把它調整爲UTF8字符集,以兼容大多數字符集。
咱們先來執行兩條SQL,來檢測下當前的MySQL默認字符集編碼:
Sql代碼
- show variables like "%colla%";
Sql代碼
- show variables like "%char%";
latin1
字符集將給咱們帶來不少麻煩,咱們須要將其調整爲
UTF-8
!
2.修正配置,設置默認字符集編碼
這裏,咱們須要修改MySQL配置文件
my.cnf
文件,Windows環境則是
my.ini
文件。
一般在linux環境下my.cnf文件位於/etc/mysql路徑下,但因爲安裝版本或是系統環境的不一樣,咱們可能沒法在這個目錄中找到該文件。MySQL將自動加載位於/etc下的my.cnf文件。固然,該文件可能並不存在,咱們則須要手動建立它!
引用
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
修改
/etc/mysql/my.cnf
文件:
Shell代碼
- echo 修改my.cnf文件
- sudo vi /etc/mysql/my.cnf
輸入
/mysqld
,找到
[mysqld]
,鍵入
i
在末尾加上如下內容:
引用
#Set the default character set.
default-character-set=UTF8
鍵入
ctrl+c
終止輸入,鍵入
/client
,找到
[client]
在末尾加上如下內容:
引用
#Set the default character set.
default-character-set=UTF8
鍵入
ctrl+c
終止輸入,鍵入
:wq
保存退出。
若是當前文件不存在(解壓縮版,或Mac安裝版),則須要建立
/etc/my.cnf
文件。該文件將做爲MySQL環境全局配置:
Shell代碼
- echo 建立my.cnf
- sudo vi /etc/my.cnf
將下述內容寫到該文件中:
引用
[mysqld]
#Set the default character set.
default-character-set=UTF8
[client]
#Set the default character set.
default-character-set=UTF8
重啓MySQL
Shell代碼
- sudo /etc/init.d/mysql restart
執行這兩段SQL檢測字符集設置:
Sql代碼
- show variables like "%colla%";
Sql代碼
- show variables like "%char%";
3.在使用過程當中強制設置字符集編碼
爲確保字符集徹底統一,在建表、建庫的時候要強制設定統一字符集。
另外經過JDBC鏈接MySQL的時候爲確保萬無一失,鏈接字符串須要加上如下參數:
Java代碼
- jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8
useUnicode
=
true
&
characterEncoding
=
UTF-8
強制使用UTF8做爲會話字符集編碼。
當咱們經過命令方式訪問MySQL時,彷佛就沒有那麼幸運了!尤爲是遇到遺留系統數據庫,一時半會不能改動字符集編碼。
這個時候,執行SQL,在屏幕上就只能看到一堆亂碼了!杯具了!
不過沒關係,咱們能夠在登陸時指定會話級別的默認字符集(
--default-character-set=utf8
):
Shell代碼
- mysql -u root -p --default-character-set=utf8
也算是一個折中的辦法!