今天遇到一个贼坑的事情,某个功能在各个地区,都没问题,唯独在某市出现了问题,删除删不了,查询查不了!
后来发现竟然是mysql对表名大小写敏感,日了狗了,windows默认对大小写不敏感的啊!
于是赶紧去检查下lower_case_table_names值,果然,他被设为了lower_case_table_names=0。
如何检测lower_case_table_names?
1、执行如下SQL:show variables like '%lower_case_table_names%';
2、如果为0,打开my.ini文件(my.ini文件在mysql安装目录,例如我的是:C:\ProgramData\MySQL\MySQL Server 5.6\my.ini)
搜索lower_case_table_names,将其改为lower_case_table_names=1
3、重启数据库
PS:
lower_case_table_names=0 表示对表名大小写敏感
lower_case_table_names=1 表示对大小写不敏感
windows默认为1。
拓展下:
LINUX:
一、编辑配置文件
vi /etc/my.cnf
在[mysqld]下面添加lower_case_table_names=1
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
lower_case_table_names=1
二、重新启动数据库
systemctl restart mariadb
修改后,启动遇到问题,可参考如下文章:
https://blog.youkuaiyun.com/guanghuichenshao/article/details/86158737