怎么让MySQL区分大小写
参考博客
一些默认:
Windows下mysql默认不区分大小写
Linux下mysql默认区分大小写
(以下操作均在Windows下进行。)
先查看默认设置(看下自己的MySQL是区分大小写还是不区分大小写)
-
在命令行中登录MySQL(例如通过命令
mysql -u root -p
)。 -
在MySQL命令行中输入
show variables like 'lower_case_%';
看lower_case_table_names的值,为0:表示MySQL区分大小写,为1:表示MySQL不区分大小写。
此处发现lower_case_table_names的值为1,表示MySQL不区分大小写。
补充:
lower_case_file_system,代表当前系统文件是否大小写敏感,只读参数,无法修改。ON 大小写不敏感,OFF 大小写敏感。
此变量描述数据所在的操作系统的文件目录是否区分大小写。 OFF表示文件名区分大小写,ON表示它们不区分大小写。此变量是只读的,它反映了文件系统的属性
如果你的ower_case_file_system为ON,那就不要往下看了,不能配置大小写敏感!(大大的教训)
再修改配置文件
要使MySQL区分大小写,可以通过修改MySQL的配置文件来实现。MySQL的配置文件位于my.cnf
或 my.ini
文件中,这取决于你的操作系统。
要修改配置文件,可以按照以下步骤操作:
-
找到你的my.cnf或my.ini文件,具体位置和名称取决于你的操作系统和MySQL版本。通常情况下,在Linux上,my.cnf文件位于/etc目录下,而在Windows上,my.ini文件位于 MySQL的安装目录下。
-
用文本编辑器打开my.cnf或my.ini文件,并在[mysqld]添加以下内容:
[mysqld] # 设置mysql区分大小写 lower_case_table_names=0
-
保存此文件并退出文本编辑器。
-
重新启动MySQL服务器以使更改生效。
打开服务,找到自己的mysql服务,右键重启。
此处有一个问题,发现更改后启动不了服务了,但是把添加的东西删掉就又可以重启了。
查这篇博客MySQL到底大小写敏感还是不敏感?发现原因:
所以不折腾了!!!
如果数据目录驻留在区分大小写的文件系统上的话,可以试者更改。
查官方文档,发现这句话:
但是官方文档也给出了解决方案,此处不演示。
给出别人在Linux上的的示例:别人的示范
最后检查新设置是否生效
为了检查新设置是否生效,我们可以重复第一步的步骤。