报错如下:
但是数据库里是有这张表的:
调查到这里能想到的也就只有MySQL是否区分大小写表名了,经过调查发现MySQL在Windows下默认不区分大小写,在Linux下默认区分大小写,需要进行配置(在my.cnf中的[mysqld]后面添加或者修改):
这是修改之前的配置,需要把lower_case_table_names的值改为1(lower_case_table_names参数有两个值: 0:区分大小写,1:不区分大小写)
修改后:
重启MySQL服务,然后验证修改是否有效:
show variables like 'lower_case_table_names'
value为1说明修改的配置已经生效了,然后操作我们的业务系统,发现已经不报错了。
注意:
MySQL在Windows下默认不区分大小写,在Linux下默认区分大小写,并且在Linux下的情况有点复杂:
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;