图1.Navicat截图然而,似乎发现了什么不对的地方,是不是大小写问题?为了验证一下,我将表名改为大写的就好了,由此得出结论:大小写敏感。
查看lower_case_table_names的值,0代表区分大小写,1代表不区分大小写。
图2. 查看lower_case_table_names的值
Tips:
在linux系统,默认设置下:
数据库名与表名是严格区分大小写的;列名与列的别名在所有的情况下均是忽略大小写的;变量名也是严格区分大小写的;
在windows系统,默认设置下:
都不区分大小写
解决方法
以root用户登录数据库服务器,修改/etc/my.cnf 文件: 1. 在[mysqld]下加入如下代码:
lower_case_table_names=11
图3.my.cnf文件2. 重新启动数据库service mysqld restart12
3.再次查看lower_case_table_names的值,0代表区分大小写,1代表不区分大小写。
show Variables like'%table_names'1
图4.再次查看lower_case_table_names的值
写在最后
为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库、表、列的时候全部采用小写字母加下划线的方式,不使用任何大写字母。