mysql数据库区分大小写

今天在向mysql数据库推送数据的时候,发生了报错

Table '大写表名' doesn't exist;

这个服务我之前推送到其他数据库毫无问题,为什么到这就找不到表了呢?

经过我一番查找,发现是大小写的问题。

But   这个数据库是我从好用的那个备份过来的啊。

终于,我发现了,是mysql数据库配置的问题。

 

解决方案:

关闭MySQL服务

找到my.ini或者my.cnf文件

在[mysqld]在下面增加一行lower_case_table_names=1

重启MySQL服务

 

查看sql:show variables like "%case%"

lower_case_file_system = OFF 是开启,ON是关闭

具体:

lower_case_table_names = 0 , 表名存储为给定的大小和比较是区分大小写的 
lower_case_table_names = 1 , 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names = 2, 表名存储为给定的大小写但是比较的时候是小写的

PS:

以前的表已经使用大写的表名存储的,你查询的话只是把现在要查询的表 转成全小写 比如 select * from Test 在执行时他会转成 select * from test ,但是还是对不上以前的表。这个时候你可以把以前的表全都改成小写就可以了。从你把这个值改成1之后建立的表就不会有这种问题了。

(小白第一次发,查了好几个资料,总结了一下,如有侵权,请联系我,谢谢!)

posted @ 2020-05-08 10:06  Yesong_Li  阅读(249)  评论(0)    收藏  举报