MySQL 字符集設置

一般在安裝完MySQL後,咱們須要對MySQL字符集進行相關設置。 
咱們以 Linux(Ubuntu) 環境描述具體操做, Unux 與其基本一致, Windows 路徑配置上少有不一樣。 

咱們將討論如下幾個問題: 
  1. 字符集問題表徵
  2. 修正配置,設置默認字符集編碼
  3. 在使用過程當中強制設置字符集編碼


1.字符集問題表徵  

MySQL默認 latin1 (其實就是 ISO-8859-1 )字符集。這顯然不能知足咱們的須要,所以咱們把它調整爲UTF8字符集,以兼容大多數字符集。 

咱們先來執行兩條SQL,來檢測下當前的MySQL默認字符集編碼: 
Sql代碼   收藏代碼
  1. show variables like "%colla%";   

 

Sql代碼   收藏代碼
  1. 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代碼   收藏代碼
  1. echo 修改my.cnf文件  
  2. 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代碼   收藏代碼
  1. echo 建立my.cnf  
  2. 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代碼   收藏代碼
  1. sudo /etc/init.d/mysql restart  

執行這兩段SQL檢測字符集設置: 
Sql代碼   收藏代碼
  1. show variables like "%colla%";   

 

Sql代碼   收藏代碼
  1. show variables like "%char%";   

 

3.在使用過程當中強制設置字符集編碼  
爲確保字符集徹底統一,在建表、建庫的時候要強制設定統一字符集。 
另外經過JDBC鏈接MySQL的時候爲確保萬無一失,鏈接字符串須要加上如下參數: 
Java代碼   收藏代碼
  1. jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8  

useUnicode = true & characterEncoding = UTF-8 強制使用UTF8做爲會話字符集編碼。 

當咱們經過命令方式訪問MySQL時,彷佛就沒有那麼幸運了!尤爲是遇到遺留系統數據庫,一時半會不能改動字符集編碼。  這個時候,執行SQL,在屏幕上就只能看到一堆亂碼了!杯具了!  

不過沒關係,咱們能夠在登陸時指定會話級別的默認字符集( --default-character-set=utf8 ): 
Shell代碼   收藏代碼
  1. mysql -u root -p --default-character-set=utf8  

也算是一個折中的辦法!
相關文章
相關標籤/搜索