lower_case_table_names - xiaoboluo768/qianjinliangfang GitHub Wiki
- 设置数据库中的数据库名称,表名称是否区分大小写
- 有0,1,2三个值,含义如下:
- 设置为0,表名将按指定的字符串存储,且比较时区分大小写
- 设置为1,数据库名和表名称将转换为小写存储在磁盘上,且比较时不区分大小写
- 设置为2,表名称将按照给定的字符串存储,但以小写形式进行比较
- 全局变量,只读变量,整型值,有效值为0~2,在Windows上,默认值为1,在OS X上,默认值为2,在类UNIX系统上,默认值为0
- 注意:
- 如果在不区分大小写的文件系统(如Windows或OS X)上运行MySQL,则不应将lower_case_table_names设置为0。在不区分大小写的文件系统上设置为0,不支持INSERT INTO tb_name... SELECT ... FROM tbl_name组合语句,可能会导致mysql被挂起状况,另外,错误的tbl_name字母大小写。在使用MyISAM引擎时,使用不同的字母大小写访问表名可能会导致索引损坏
- 从MySQL 5.6.27开始,如果在不区分大小写的文件系统上尝试使用--lower_case_table_names = 0启动服务器,则会报错并退出
- 如果使用InnoDB表,则应在所有平台上将此变量设置为1,以强制将名称转换为小写
- MySQL 5.6中此变量的设置会影响复制过滤选项在区分大小写方面的行为
- 在5.6之前的MySQL版本中,如果从库使用区分大小写的文件系统,则在复制主库和从库上对lower_case_table_names使用不同的设置可能导致复制失败。这个问题在MySQL 5.6.1中解决了
- 有0,1,2三个值,含义如下:
上一篇:max_user_connections | 下一篇:foreign_key_checks