解决MySQL数据库名和表名大小写敏感

系统环境:Windows 10 专业版
MySQL版本:MySQL 5.7

首先,找到my.ini文件所在的位置,并且打开编辑
1、运行打开服务的命令:services.msc
2、找到MySQL 服务

MySQL服务.png

其次,在my.ini文件最后加一行:lower_case_table_names=2,并且重启MySQL服务。

很多说在my.ini 文件中 [mysqld]节点后面加lower_case_table_names=2,就可以了,但是添加后并没有生效,可能是系统版本、数据库版本等问题,没有时间去深究,特此记录。

my.ini文件.png
为什么windows不能取0?官方文档,操作系统是不支持大小写敏感的文件系统。

You should not set lower_case_table_names to 0 if you are running MySQL on a system where the data directory resides on a case-insensitive file system (such as on Windows or OS X).

变量lower-case-table-names的取值

取值范围有三个,分别是0、1、2.

  1. 设置成0:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时大小写敏感。
  2. 设置成1:表名转小写后存储到硬盘,比较时大小写不敏感。
  3. 设置成2:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时统一转小写比较。
更多的资料,可以参考官方文档系统变量部分:

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lower_case_table_names

其他参考

https://www.linuxidc.com/Linux/2018-01/150696.htm

你可能感兴趣的:(解决MySQL数据库名和表名大小写敏感)