字符集
1.常见字符集
GBK:双字节编码
UTF-8: 1~4字节,汉字占3个字节
2.mysql支持的字符集简介
mysql可以在同一台服务器、同一数据库、同一个表的不同字段可以指定不同的字符集
查看所有字符集:show character set; select * from information_schema.character_sets;
校对规则:select * from information_schema.collations;
_ci:大小写不敏感
_cs(_bin):大小写敏感
3.mysql字符集设置
服务器级:
配置文件:my.cnf
character-set-server=gbk
启动项:
--character-set-server
编译时:
cmake . -DDEFAULT_CHARSET=gbk
只改字符集,没有改校对规则
show variables like 'character_set_server';
show variables like 'collation_server';
数据库级:
show variables like 'character_set_database';
show variables like 'collation_database';
表级别:
show create table tablename\G;
连接字符集合校对规则:
3个参数:character_set_client、character_set_connection、character_set_results
修改:set names ;
字符集的修改步骤:
模拟将latin1字符集修改成GBK字符集
(1)到出表结构
mysql -uroot -p --default-character-set=gbk -d databasename >createtable.sql
(2)手工修改createtable.sql中表的结构定义中的字符集为新的字符集
(3)确保记录不再更新,导出表的所有记录
mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename >data.sql
--quick 用于转存大的表,从服务器一次一行地检索表中的行
--extended-insert 多行插入values,减少转存文件大小
--default-character-set=latin1 按照原有字符集导出数据
(4)打开data.sql,将SET NAMES latin1 修改成SET NAMES gbk。
(5)使用新的字符集创建新的数据库
create database databasename default charset gbk;
(6)创建表,执行createtab.sql
mysql -uroot -p databasename < createtab.sql
(7)导入数据,执行data.sql
mysql -uroot -p databasename <data.sql