mysql大小写敏感配置相关的两个参数,lower_case_file_system 和 lower_case_table_names。
查看当前mysql的大小写敏感配置
show global variables like ‘%lower_case%‘;
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | ON |
| lower_case_table_names | 0 |
+------------------------+-------+
# lower_case_file_system
# 表示当前系统文件是否大小写敏感,只读参数,无法修改。
# ON 大小写不敏感
# OFF 大小写敏感
# lower_case_table_names
# 表示表名是否大小写敏感,可以修改。
# lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感。
# lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作。
设置lower_case_table_names的值
# 打开my.cnf文件,加入以下语句后重启。
lower_case_table_names = 0 或 lower_case_table_names = 1
CREATE TABLE `user` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
设置lower_case_table_names = 0
# 表名与创建时大小写一致
select count(*) from user;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
# 表名与创建时大小写不一致
select count(*) from User;
ERROR 1146 (42S02): Table ‘user.User‘ doesn‘t exist
lower_case_table_names=0时,表名大小写敏感。
设置lower_case_table_names = 1
表名与创建时大小写一致
select count(*) from user;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
表名与创建时大小写不一致
select count(*) from User;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
lower_case_table_names=1时,表名大小写不敏感
设置lower_case_table_names=1时,原来在lower_case_table_names=0时创建的表提示不存在的解决方法
# 在lower_case_table_names=0时使用大小写混用创建表名,
# 再设置lower_case_table_names=1后,原创建的表使用时会提示不存在。
首先设置lower_case_table_names=0
创建表 User(大小写混用)
CREATE TABLE `User` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
show tables;
+----------------+
| Tables_in_user |
+----------------+
| User |
+----------------+
再设置lower_case_table_names=1
执行查询,不管表名是大写还是小写,都提示表不存在
select * from User;
ERROR 1146 (42S02): Table ‘user.user‘ doesn‘t exist
select * from user;
ERROR 1146 (42S02): Table ‘user.user‘ doesn‘t exist
select * from USER;
ERROR 1146 (42S02): Table ‘user.user‘ doesn‘t exist
原文:https://www.cnblogs.com/zsh2871/p/mysql-da-xiao-xie-min-gan-pei-zhi.html