解决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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Oracle: 默认是大小写不敏感,表名、字段名等不区分大小写,小写字母会自动转换为大写字母; 需要用小写字母时需...
    东皇Amrzs阅读 11,211评论 0 8
  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 41,158评论 0 48
  • MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的: 1、数据库名与表名是严格区分大小写的; 2...
    魏魏魏_1500阅读 5,707评论 0 0
  • 我们家日子一般般而我对生活的感觉很甜。 在骄傲的年纪里我没有对谁有过意见分歧,大多数时间里很乐观低调。 在一个特殊...
    SX书莘阅读 2,578评论 0 1
  • 分析一个时间的复杂度,推导大O的阶 判断这个的时间复杂度 由于2^x = n 得到 x = log(2)n ,所以...
    test_java阅读 3,308评论 0 0