应用场景:
本人由于项目前期使用windows版国产数据库开发,默认就是大小写不敏感
的,加上代码规范约束不够,导致代码中SQL大小写不统一。后期有需求要更换数据库,改用Mysql,因为在Linux系统中Mysql默认是大小写敏感的,所以需要对Mysql进行大小写敏感配置。
1.进入Mysql Docker容器bash
docker exec -it mysql bash
2.登录mysql
mysql -uroot -p123456
3.查看"lower_case_table_names"
变量值
show global variables like '%lower_case%';
mysql> show global variables like '%lower_case%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+------------------------+-------+
2 rows in set (0.02 sec)
4.编辑相关配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
容器中如果没有vim编辑器可自行安装(参考)
追加配置:
lower_case_table_names=1
“0”:大小写敏感
“1”:大小写不敏感
"exit;"
退出容器后重启Mysql Docker容器:
docker restart mysql
5.测试
进入mysql再次查询lower_case_table_names
变量值为1
就表示设置成功:
mysql> show global variables like '%lower_case%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
+------------------------+-------+
2 rows in set (0.01 sec)
注意:
设置完后实际使用时一定要先将当前的数据库名和表名转换为小写,不然会报找不到表的错误。所谓的大小写不敏感,实际上是先把sql统一转换成了小写来查询。