linux 下 mysql 表大小写问题

注意
如果在lower_case_table_name=0时候建的表,表名是区分大小的即使后来更改变量设置为1,已经建的表是不会变的,使用小写进行查该表时还是会提示该表不存在。所以数据库中如果有数据,首先备份数据然后清空数据库,修改MySQL配置后,在将数据全部导入。

window下的MySQL是忽略大小写的而在Linux下MySQL默认是区分大小写,在Linux下建表时候如果表名使用大写,查询时候使用小写查询会提示表不存在。

解决办法
mysql是通过lower_case_table_names变量来处理大小写问题的。 
首先查询该变量

show variables like '%case%';
--或者使用如下查询
select @@lower_case_table_name;


 
结果如下:

Variable    value
lower_case_table_names    0
lower_case_table_name变量是只读变量所以mysql启动之后是无法进行更改的,只能去my.conf中修改变量值,首先找到MySQL的配置文件,MySQL配置文件使用ini文件格式,找到[mysqld]部分添加配置,如果写错位置会导致MySQL无法启动或者启动成功但是忽略该配置。

原理
查阅mysql文档会发现对lower_case_table_name变量的描述如下

 


--------------------- 
作者:俞兆鹏 
来源:CSDN 
原文:https://blog.csdn.net/zhaopeng_yu/article/details/80785813 
版权声明:本文为博主原创文章,转载请附上博文链接!

おすすめ

転載: blog.csdn.net/zxf1242652895/article/details/90017568