Mysql区分大小写(对大小写敏感)的问题解决
问题起因:
系统上线时,原本在Windows下开发的时候调试完一切正常。转到Linux后就报错查不到表(如下图1),纳闷了,查了一下数据库表(如图2)明明就在那儿啊。
图1:
图2
然后把sql语句复制出来单独查询发现这个大写的表名找不到了,改成小写的就找到了。
问题定位到了,解决也就是一层窗户纸了。
问题解决:
查询一下Linux上的lower_case_table_names值是几
show Variables like '%table_names'
0为区分大小写;1为不区分大小写。
如果改sql想着那么多sql语句要改,果断连上Linux服务器修改MySQL的配置文件。
修改/etc/my.cnf
在末尾加上一行 lower_case_table_names=1
重启MySQL
[root@VM_0_15_centos etc]# systemctl restart mysqld.service
再一查询发现已经变为1了
至此问题已经解决。
总结:
出现问题了,不应该立马怀疑自己错了。仔细分析问题找出错误源,才能对症下药。