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大小写敏感问题的主要内容,如果未能解决你的问题,请参考以下文章

mysql大小写敏感问题

MySQL大小写敏感

MySQL大小写敏感问题和命名规范

MySQL大小写敏感问题和命名规范

windows下安装Mysql8,表名无法设置成大小写敏感的解决

Centos7 下mysql大小写敏感问题