mysql在windows下是不区分大小写的,而linux下是区分大小写的。
- 项目在本地测试阶段没有问题,当使用sit环境测试时系统始终运行不起来,查看日志报错找不到表,
当时很奇怪,这些表在数据库中是存在的,而且本地测试也没有问题,后来找到了答案,是因为mysql在windows下是不区分大小写的,而linux下是区分大小写的。 - 解决方案
- 修改linux的mysql的lower_case_table_names参数,为0时区分大小写,为1时不区分大小写。
- 在linux的mysql下输入:
show variables like 'lower%'
- lower_case_file_system是一个只读参数,无法被修改,这个参数是用来告诉你在当前的系统平台下,是否对文件名大小写敏感。
- lower_case_table_names为0时为大小写敏感,为1时为大小写不敏感。
- MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;