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之后建立的表就不会有这种问题了。
(小白第一次发,查了好几个资料,总结了一下,如有侵权,请联系我,谢谢!)
本文来自博客园,作者:Yesong_Li,转载请注明原文链接:https://www.cnblogs.com/YesongLi/articles/12848827.html

浙公网安备 33010602011771号