MySQL配置大小写不敏感参数lower_case_table_names

lower_case_table_names 是mysql设置大小写是否敏感的一个参数,有0,1,2三个值,Linux和Unix默认为0大小写敏感,Windows默认值为1大小写不敏感,MacOS默认值为2大小写不敏感。

lower_case_table_names参数


  • lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的,例如:如CREATE DATABASE  Wuzhun;将会创建一个Wuzhun的目录,CREATE TABLE  Blog将会原样生成Blog.frm,SQL语句也会原样解析。

  • lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写,例如CREATE DATABASE  Wuzhun;将会创建一个wuzhun的目录,CREATE TABLE  blog将会原样生成blog.frm,SQL比较的时候会转换成小写,如果有从Linux系统创建的Wuzhun的数据库Blog.frm表,迁移到Windows系统上,则查询SELECT * FROM Blogo会报错。

  • lower_case_table_names=2 表名存储为给定的大小写但是比较的时候是小写的,不区分大小写。


修改MySQL配置my.ini,在末尾新增一行

lower_case_table_names=1


注意事项


在Linux上不支持值2,服务器强制该值为0。

并且如果在数据目录驻留在不区分大小写的文件系统(例如Windows或MacOS)上的系统上运行MySQL,则不应将lowercasetable_names设置为0。

如果Windows中把lower_case_table_names设置为0,则Mysql的服务会一直启动报错。