# MYSQL:ERROR 1146 (42S02): Table ‘xxx‘ doesn‘t exist 一种情况
原因:linux 下表名大小写问题造成
MySQL 在 Linux 下数据库名、表名、列名、别名大小写规则是这样的:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 列名与列的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的
show global variables like '%lower_case%'; | |
+------------------------+-------+ | |
| Variable_name | Value | | |
+------------------------+-------+ | |
| lower_case_file_system | OFF | | |
| lower_case_table_names | 0 | | |
+------------------------+-------+ |
(1)lower_case_file_system
表示当前系统文件是否大小写敏感,只读参数,无法修改。
ON 大小写不敏感
OFF 大小写敏感
(2)lower_case_table_names
表示表名是否大小写敏感,可以修改。
lower_case_table_names = 0 时,mysql 会根据表名直接操作,大小写敏感。
lower_case_table_names = 1 时,mysql 会先把表名转为小写,再执行操作。
参考:
https://www.huaweicloud.com/articles/12ad8ab7f5df62e809301bcbf9078a1b.html
https://blog.csdn.net/fdipzone/article/details/73692929