MySQL大小写敏感的控制
mysql是通过lower_case_table_names参数来控制大小写敏感的
1:参数含义
lower_case_table_names: 此参数不可以动态修改,必须重启数据库
lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
2 大小写区分规则
linux下:
数据库名与表名是严格区分大小写的;
表的别名是严格区分大小写的;
列名与列的别名在所有的情况下均是忽略大小写的;
变量名也是严格区分大小写的;
windows下:
都不区分大小写
Mac OS下(非UFS卷):
都不区分大小写
案列:
数据库中存在edu_website_images表
select * from edu_website_images
通过大写查询报错不存在
select * from EDU_WEBSITE_IMAGES
如何处理?
配置mysql配置文件
vi /etc/my.cnf 加入一行lower_case_table_names = 1
- //重启mysqlservice mysql restart
然后
- show variables like '%lower%';
有可能结果是上面的没改过来...
我们把数据库导出,重新创建一下数据库结果就正确了