MySQL配置表名大小写敏感、字段名大小写敏感、字段值大小写敏感。
linux下查看
1.2、es参数
unix下es默认值为 0 .下默认值是 1 .Mac OS X下默认值是 2 .
参数值
解释
使用 TABLE或 语句指定的大小写字母在硬盘上保存表名和数据库名。名称比较对大小写敏感。在大小写不敏感的操作系统如或Mac OS x上我们不能将该参数设为0,如果在大小写不敏感的文件系统上将---table-names强制设为0,并且使用不同的大小写访问表名,可能会导致索引破坏。
表名在硬盘上以小写保存,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。该行为也适合数据库名和表的别名。该值为的默认值。
表名和数据库名在硬盘上使用 TABLE或 语句指定的大小写字母进行保存,但MySQL将它们转换为小写在查找表上。名称比较对大小写不敏感,即按照大小写来保存,按照小写来比较。注释:只在对大小写不敏感的文件系统上适用! 表名用小写保存。
1.3 由大小写敏感转换为不敏感方法
如果原来所建立库及表都是对大小写敏感的,想要转换为对大小写不敏感,主要需要进行如下3步:
1.将数据库数据通过导出。
2.在f(下配置文件是/etc/f)中更改最后添加 me = 1,
#add by lishuoboy 20181226 start
lower_case_table_names=1
#add by lishuoboy 20181226 end
然后重启mysql数据库
service mysqld restart
3.将导出的数据导入mysql数据库。
1.4 注意事项
为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库、表、列的时候全部采用小写字母加下划线的方式,不使用任何大写字母
在任何系统中可以使用es=1。使用该选项的不利之处是当使用SHOW 或SHOW 时,看不出名字原来是用大写还是小写。
请注意在Unix中如果以前es = 0将es设置为1之前,重启之前,必须先将旧的数据库名和表名转换为小写。
2. 【字段名】大小写敏感设置
无需设置,均不敏感
3.【字段值】大小写敏感设置,字符集和排序规则
字段值的大小写由mysql的校对规则来控制。提到校对规则,就不得不说字符集。字符集是一套符号和编码,校对规则是在字符集内用于比较字符的一套规则 .
一般而言,校对规则以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。比如 utf8字符集,,表示不区分大小写,这个是utf8字符集默认的校对规则;表示区分大小写,表示二进制比较,同样也区分大小写 。
3.1 数据库、表、字段排序规则设置
字段值大小写敏感需要设置字段排序规则为属性为 ***_bin
sql这样写 :
CREATE TABLE T(A VARCHAR(10) BINARY);
① 数据库的编码
② 表的编码
③ 表的编码