linux上是区分表名大小写的,但是可以通过 my.cnf文件中设置不区分!
1、找到my.cnf文件的所在地。
find / -name my.cnf
找到这个文件的位置。我服务器上的位置是 /usr/my.cnf
2、编辑该文件,加入 lower_case_table_name = 1
cd /usr/
vi my.cnf
修改后内容如下:
[mysqld]
lower_case_table_names = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
保存该文件
3、重启mysql 服务
service mysql restart
做完这些你再去查询之前的表例如TEST,你会发现还是不行!(嗯,这个问题坑了我两个小时)
不是说设置这个属性值就好了吗?为什么还不行! lower_case_table_name 无效果 ???
扫描二维码关注公众号,回复:
2565599 查看本文章
官方解释 ——> 点击打开链接
值 | 描述 |
0 | 表和数据库名存储在磁盘上。名称比较是区分大小写的。 |
1 | 表名以小写形式存储在磁盘上,名称比较不区分大小写。MySQL将所有表名转换为小写的存储和查找。 这种行为也适用于数据库名称和表别名。 |
2 | 表和数据库名称存储在磁盘上,使用CREATE Table中指定的lettercase或创建数据库语句, 但是MySQL将它们转换为小写的查找。名称比较不区分大小写。这只适用于不区分大小写的文件系统!InnoDB表名和视图名以小写形式存储, 至于小写的case_table_name =1。 |