mysql大小写敏感问题
Posted 小Cai先森
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql大小写敏感问题相关的知识,希望对你有一定的参考价值。
一、mysql 5 修改方式:
问题:
在创建mysql表的时候发现不论表明是大写或小写,建完之后统一被变成了小写。
原因:
MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写。
解决办法:(基于windows系统下的方法)
找到mysql安装目录下的my.ini文件,在文件中最后添加(1表示大小写不敏感,2表示大小写敏感)
1 lower_case_table_names=2
然后重启mysql,cmd命令行输入:
1 net stop mysql 2 net start mysql
然后在mysql命令界面中输入:
show variables like \'%low%\';
发现已经大小写敏感了,到此设置成功了。
另外,用Navcat执行sql脚本的时候,还有可能会遇到一个问题:明明脚本语句执行的都是大写的表名,但是建完以后,发现有的表名还是被改成了小写格式
例如:(所有大写的表中突然出现一个奇怪的小写表名,其原因不明)
解决办法,
1.手动用命令更改。
1 rename table t_meeting to t_m; 2 rename table t_m to T_MEETING;
2.找到数据文件直接重命名:
文件路径:C:\\ProgramData\\MySQL\\MySQL Server 5.5\\data
找到对应的数据库并重命名对应的表就好了,因为Navcat重命名好像并没有效果,可能是我的版本问题,所以不建议直接用Navcat直接修改。
============
二、mysql 8修改方式
在另外一台机器上装了mysql 8之后,想用和mysql5相同的办法在win10下修改大小写敏感的问题。但是照做之后根本没有效果。后来在网上各种搜索了一番才发现,原来mysql8不允许在数据库初始化之后更新这项配置,只能在初始化之前,就做好配置变更才能起到效果。其他做法同上,也是修改该my.ini文件,但是要注意一点,lower_case_table_names=2一定要写在【mysqld】之下,不能写在其他中括号的项目之下,不然仍然会报错。弄完之后重启mysql服务就可以了。
参考:
1、mysql8 安装和配置 https://www.cnblogs.com/nuomin/p/8916257.html
2、https://www.linuxidc.com/Linux/2018-01/150696.htm
3、windows系统mysql8.0更改lower_case_table_names :https://blog.csdn.net/ceciliawanghenan/article/details/82916662
以上是关于mysql大小写敏感问题的主要内容,如果未能解决你的问题,请参考以下文章