linux下设置mysql不区分大小写

Posted 经典鸡翅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下设置mysql不区分大小写相关的知识,希望对你有一定的参考价值。

背景

今天准备上线的环境,往服务器上布服务,某个功能查询报错,觉得很奇怪,环境一样,代码一样,数据一样,为何呢,看了一眼sql。本地运行正常,上线环境报错,报错信息缺少某列。仔细一看,where 条件的列别名是大写的,表别名是小写。大概就是这个意思 select aaa from b where B.aaa = ‘1‘ 。心想,mysql不是不区分大小写吗。难道上线环境是区分的,一查还真是。。于是修改了一下,在此提供给大家修改方式。

解决方案

查看mysql是否开启了区分大小写。

show variables like '%case_table%';

lower_case_table_names=1(说明是不区分大小写的)
lower_case_table_names=0(如上图为0说明区分大小写的)

linux下修改

进入etc下面

cd /etc/

编辑my.cnf文件

vi my.cnf

最后一行加上下面一句

lower_case_table_names=1

重启mysql:

service mysql restart

windows下修改

到安装mysql的目录,修改my.ini文件
在文件最后一行加上下面一句话

lower_case_table_names=1

重启mysql。

以上是关于linux下设置mysql不区分大小写的主要内容,如果未能解决你的问题,请参考以下文章

Linux下设置mysql不区分大小写

LINUX下mysql的大小写是否区分设置 转

Linux环境下MySQL数据库大小写区分问题

linux mysql不区分表名大小写配置

Linux(centos) 设置MySQL数据库不区分大小写

linux下解决mysql区分大小写问题怎么解决