执行sql:

show global variables like '%lower_case%';

linux下mysql表名大小写敏感的问题

lower_case_file_system:表示当前系统文件是否大小写敏感,只读参数,无法修改
ON 大小写不敏感
OFF 大小写敏感

 

lower_case_table_names:这个选项不仅仅适用于表名的大小写敏感,同样适用于数据库名和表别名。
该变量取值范围有三个,分别是0、1、2.
设置成0:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时大小写敏感。
设置成1:表名转小写后存储到硬盘,比较时大小写不敏感。
设置成2:表名按你写的SQL大小写存储,大写就大写小写就小写,比较时统一转小写比较。

 

修改方法:

//1.首先进入到docker中的mysql容器,9b33e00a9488为mysql的容器id:
docker exec -it 9b33e00a9488 /bin/bash

//2.安装vim编辑器,方便修改配置文件(以下两个命令都是在进入mysql容器后输入的)
//同步/etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引,这样才能获取到最新的软件包。
apt-get update
apt-get install vim

//3.修改mysql的配置文件,如果你不想修改,只是想查看下文件的话,那你不需要安装vim编辑器,
// 可以直接使用cat my.cnf查看
vim /etc/mysql/my.cnf


在[mysqld]下添加如下:
[mysqld] 
lower_case_table_names=1

保存,退出mysql容器;
执行docker restart MySQL ,重启MySQL容器即可查看

 再一次输入以上sql,可以看到结果:

 备注:以上操作只适用于mysql5.7以前的版本,以后的版本如:
MySQL8.0 新增了data dictionary的概念,数据初始化的时候在linux下默认使用lower-case-table-names=0的参数,数据库启动的时候

读取的my.cnf文件中的值。若二者值不一致则在mysql的错误日志中记录报错信息,参考https://blog.csdn.net/vkingnew/article/details/80613043

 

 

 

 

参考:

MySQL表名大小写敏感导致的问题

解决Docker安装MySQL不区分大小写问题