設定Mysql字符集

鴨脖發表於2014-03-29

資料庫中中文亂碼解決:

設定server級,db級,table級使用的字符集為utf8。

設定方法:

檢視mysql字符集狀態:

先使用客戶端工具mysql登入: 

[plain] view plaincopy
  1. mysql> status  
  2. --------------  
  3. mysql  Ver 14.14 Distrib 5.5.29, for linux2.6 (i686) using readline 5.1  
  4.   
  5. Connection id:      2  
  6. Current database:     
  7. Current user:       root@localhost  
  8. SSL:            Not in use  
  9. Current pager:      stdout  
  10. Using outfile:      ''  
  11. Using delimiter:    ;  
  12. Server version:     5.5.29-log MySQL Community Server (GPL)  
  13. Protocol version:   10  
  14. Connection:     Localhost via UNIX socket  
  15. Server characterset:    utf8  
  16. Db     characterset:    utf8  
  17. Client characterset:    utf8  
  18. Conn.  characterset:    utf8  
  19. UNIX socket:        /tmp/mysql.sock  
  20. Uptime:         1 min 10 sec  

設定server級字符集:

編輯 /etc/mysql/my.cnf檔案

[java] view plaincopy
  1. [client]  
  2. default-character-set=utf8  
  3.   
  4. [mysqld]  
  5. character_set_server=utf8  
注:[mysqld]處也可使用default-character-set=utf8,如果啟動mysql服務出錯的話,就使用character_set_server=utf8。


設定db級字符集:

建立資料庫是指定:

mysql> create database mytest character set utf8;

修改已有資料庫字符集:

[plain] view plaincopy
  1. mysql> alter database character set utf8;  


設定表字符集:

建立表時指定:

[java] view plaincopy
  1. mysql> create table mytable(id int auto_increment primary key) character set utf8;  

修改表的字符集:

[plain] view plaincopy
  1. mysql> alter table mytable character set latin1;  


如果資料中要存放中文字元, 推薦使用utf8。

還有就是修改字符集只對之後新增的資料有效,已存在的資料不會改變

相關文章