关于mysql表名区分大小写的问题
序、
mysql表名是否区分大小写是通过lower_case_table_names参数来设置,登录mysql后可通过show Variables like ‘%table_names’ 来查看默认的值。
不同系统,该参数的默认值是不同的。
lower_case_table_names = 1
表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names = 0
表名存储为给定的大小和比较是区分大小写的
lower_case_table_names = 2
表名存储为给定的大小写但是比较的时候是小写的。
1:windows环境默认 0:linux环境默认 2:macos环境默认
一、关于linux镜像中的mysql参数 lower_case_table_names
上面说到linux系统的lower_case_table_names = 0 默认为0,但是通常开发测试过程中习惯性的sql语句是不区分大小写的,需要修改该参数。但是在/etc/mysql/my.cnf中直接修改lower_case_table_names = 1 是不可以的!重启mysql直接导致docker无法启动!
我们需要在初始化mysql前修改好此参数。
二、开始修改mysql镜像lower_case_table_names参数
1、登录到mysql docker控制台
选择“容器”->“mysql镜像”->“终端机”->新增bash
2、在docker中安装工具
docker中可能没有相关vim工具,需要自己安装
apt-get update
apt-get install vim
3、修改mysql默认路径</