1、现象描述:
在 linux 操作系统下 mysql 创建新的 TABLE_NAME 时,大写的表名无法创建成功,mysql 数据库自动将 TABLE_NAME 转换为小写
2、故障分析:
Linux 环境下 Mysql 数据库名与表名是严格区分大小写的(系统库 information_schema 及其之下的表除外 ),该限制取决于 mysql 配置文件参数 lower_case_table_names,而默认该参数是未配置的 。
3、处理办法
编辑 mysql 的配置文件 /etc/my.cnf 配置文件,在 [mysqld] 下面添加一行配置,lower_case_table_names=0,并重启 mysql 服务即可
说明:lower_case_table_names 是 mysql 设置大小写是否敏感的一个参数
|-------|--------------------------------|--------------------|
| 1 | 表名会被强制转换为小写进行存储,而且在查询时不区分大小写。 | 所有系统(推荐使用) |
| 0 | 表名会按照创建时的大小写原样存储,查询时必须严格匹配大小写。 | Linux/Unix(默认值) |
| 2 | 表名按创建时的大小写存储,但在比较时不区分大小写。 | Windows/macOS(默认值) |