执行sql:
show global variables like '%lower_case%';
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
参考:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下mysql表名大小写敏感的问题 - Python技术站