Mysql_字符集设置
?
?
Linux Ubuntu
ubuntu上mysql默认安装使用的字符集是latin1。
1 查看字符集支持
show character set;
mysql> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset? | Description???????????????? | Default collation?? | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5???? | Big5 Traditional Chinese??? | big5_chinese_ci???? |????? 2 |
| dec8???? | DEC West European?????????? | dec8_swedish_ci???? |????? 1 |
| cp850??? | DOS West European?????????? | cp850_general_ci??? |????? 1 |
| hp8????? | HP West European??????????? | hp8_english_ci????? |????? 1 |
| koi8r??? | KOI8-R Relcom Russian?????? | koi8r_general_ci??? |????? 1 |
| latin1?? | cp1252 West European??????? | latin1_swedish_ci?? |????? 1 |
| latin2?? | ISO 8859-2 Central European | latin2_general_ci?? |????? 1 |
| swe7???? | 7bit Swedish??????????????? | swe7_swedish_ci???? |????? 1 |
| ascii??? | US ASCII??????????????????? | ascii_general_ci??? |????? 1 |
| ujis???? | EUC-JP Japanese???????????? | ujis_japanese_ci??? |????? 3 |
| sjis???? | Shift-JIS Japanese????????? | sjis_japanese_ci??? |????? 2 |
| hebrew?? | ISO 8859-8 Hebrew?????????? | hebrew_general_ci?? |????? 1 |
| tis620?? | TIS620 Thai???????????????? | tis620_thai_ci????? |????? 1 |
| euckr??? | EUC-KR Korean?????????????? | euckr_korean_ci???? |????? 2 |
| koi8u??? | KOI8-U Ukrainian??????????? | koi8u_general_ci??? |????? 1 |
| gb2312?? | GB2312 Simplified Chinese?? | gb2312_chinese_ci?? |????? 2 |
| greek??? | ISO 8859-7 Greek??????????? | greek_general_ci??? |????? 1 |
| cp1250?? | Windows Central European??? | cp1250_general_ci?? |????? 1 |
| gbk????? | GBK Simplified Chinese????? | gbk_chinese_ci????? |????? 2 |
| latin5?? | ISO 8859-9 Turkish????????? | latin5_turkish_ci?? |????? 1 |
| armscii8 | ARMSCII-8 Armenian????????? | armscii8_general_ci |????? 1 |
| utf8???? | UTF-8 Unicode?????????????? | utf8_general_ci???? |????? 3 |
| ucs2???? | UCS-2 Unicode?????????????? | ucs2_general_ci???? |????? 2 |
| cp866??? | DOS Russian???????????????? | cp866_general_ci??? |????? 1 |
| keybcs2? | DOS Kamenicky Czech-Slovak? | keybcs2_general_ci? |????? 1 |
| macce??? | Mac Central European??????? | macce_general_ci??? |????? 1 |
| macroman | Mac West European?????????? | macroman_general_ci |????? 1 |
| cp852??? | DOS Central European??????? | cp852_general_ci??? |????? 1 |
| latin7?? | ISO 8859-13 Baltic????????? | latin7_general_ci?? |????? 1 |
| cp1251?? | Windows Cyrillic??????????? | cp1251_general_ci?? |????? 1 |
| cp1256?? | Windows Arabic????????????? | cp1256_general_ci?? |????? 1 |
| cp1257?? | Windows Baltic????????????? | cp1257_general_ci?? |????? 1 |
| binary?? | Binary pseudo charset?????? | binary????????????? |????? 1 |
| geostd8? | GEOSTD8 Georgian??????????? | geostd8_general_ci? |????? 1 |
| cp932??? | SJIS for Windows Japanese?? | cp932_japanese_ci?? |????? 2 |
| eucjpms? | UJIS for Windows Japanese?? | eucjpms_japanese_ci |????? 3 |
+----------+-----------------------------+---------------------+--------+
36 rows in set (0.00 sec)
2 查看字符集相关变量
show variables like "character_set%";
mysql> show variables like 'characte%';
+--------------------------+----------------------------+
| Variable_name??????????? | Value????????????????????? |
+--------------------------+----------------------------+
| character_set_client???? | latin1???????????????????? |
| character_set_connection | latin1???????????????????? |
| character_set_database?? | utf8?????????????????????? |
| character_set_filesystem | binary???????????????????? |
| character_set_results??? | latin1???????????????????? |
| character_set_server???? | utf8?????????????????????? |
| character_set_system???? | utf8?????????????????????? |
| character_sets_dir?????? | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
3 设置默认字符集
为解决乱码问题,最简单的办法就是修改默认字符集。修改默认字符集为utf8:
找到/etc/mysql/my.cnf,
在[mysqld]下加上:default-character-set=utf8
[client]default-character-set=utf8 ###[mysqld]default-character-set=utf8skip-character-set-client-handshake ###此处是忽略客户端的字符集,使用服务器的设置
注意:
(skip语句和client中的default选一个)
当然你可以在建立数据库是规定字符集:
create database db_name default character set utf8 callate utf8-general-ci;
也可以在链接数据库前设置:set names 'utf8';
或者如果装了桌面系统,可以用mysqladmin修改启动参数,选项Advanced里的Def.CharSet修改成utf8,保存重启,不过一般用户无法修改这个选项。可以用root用户打开my.cnf修改。
4 linux下启动、停止与重启
/etc/init.d/mysql start/stop/restart
?
5. 重新连接数据库(注意,不重新连接的话,还是原来的值)
mysql> show variables like 'characte%';
+--------------------------+----------------------------+
| Variable_name??????????? | Value????????????????????? |
+--------------------------+----------------------------+
| character_set_client???? | utf8?????????????????????? |
| character_set_connection | utf8?????????????????????? |
| character_set_database?? | utf8?????????????????????? |
| character_set_filesystem | binary???????????????????? |
| character_set_results??? | utf8?????????????????????? |
| character_set_server???? | utf8?????????????????????? |
| character_set_system???? | utf8?????????????????????? |
| character_sets_dir?????? | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
好了:变成utf8编码了!
?
?
参考:http://depravedangel.iteye.com/blog/661748
?
------------------------END EOF------------------------
E
N
D
+
E
O
F
------------------------END EOF------------------------