字符集和校验规则
1.Mysql的字符集和校验规则有4个级别的默认设置:服务器级,数据库级,表级和字段级。分别在不同的地方设置,作用也不相同。
校验规则命名约定:字符集名开始,通常包括一个语言名,并宜_ci(大小写不敏感),_cs(大小写敏感),_bin(二元,即比较是基于字符编码的值而与language无关)结束
collation设置的是是否需要区分大小写,按什么方式排序
通过命令:show variables like 'character_set_server'查看服务器级字符编码;show variables like 'collation_server'查看服务器级校验规则
2.服务器级字符集和校验规则:在Mysql启动时确定,在my.cnf中设置,如果没有指定字符集,默认为latin1,如果没有设置校验规则,默认使用字符集校验规则:
[mysqld]
#character-set-server字符集,collation_server默认服务器级校验规则(例如是否区分大小写规则)
character-set-server=utf8
collation_server=utf8_general_ci
3.数据库级字符集和校验规则:
通过命令:show variables like 'character_set_database'查看数据库级字符编码;show variables like 'collation_database'查看数据库级校验规则
4.客户端与服务器交互字符集和校验规则设置,涉及character_set_client(客户端),character_set_connection(连接),character_set_results(返回结果字符集),通常情况下3个字符集应该相同的
[mysqld]
default_character_set=utf8
5.中途更改字符集:直接使用命令修改字符集,既有数据字符集不会生效,需要导出数据库,重新设置字符集然后导入