lower_case_table_names变量
MySQL数据库通过修改lower_case_table_names变量改变数据库表名是否区分大小写,
lower_case_table_names=0 表名存储为指定的大小写,比较时区分大小写
lower_case_table_names = 1 表名存储是小写的,但是比较时不区分大小写
lower_case_table_names=2 表名存储为指定的大小写,但是比较的时候是小写的
unix,linux下lower_case_table_names默认值为 0,
Windows下默认值是 1,
Mac OS X下默认值是 2
但是这是有前提的,大小写敏感是跟操作系统的文件系统相关的,比如我试图在windows操作系统下把lower_case_table_names值设置为0,即不区分大小写,报如下的错误:
[ERROR] [MY-010158] [Server] The server option 'lower_case_table_names' is configured to use case sensitive table names but the data directory is on a case-insensitive file system which is an unsupported combination. Please consider either using a case sensitive file system for your data directory or switching to a case-insensitive table name mode.
我的windows文件系统是NTFS,不支持MySQL表名大小写敏感。
另外,MySQL 8.0只有在初始化数据库时设置lower_case_table_names变量值才能生效。