table ‘***’ not found
昨天感觉自己要死的心都有了,我部署一个springboot项目在Win10电脑上运行项目没有一点问题,然后部署到云服务器LINUX下运行老说找不到表,但是数据库里明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢?
后来我去查看报错的数据库SQL语句发现表名是大写,而数据库里的表名称是小写,LINUX下的MYSQL默认是要区分表名大小写的,气死我了,(这是哪个程序猿写的SQL,拉出去枪毙十分钟,从小老师就教导我们无论什么时候,无论在什么地方都要严格区分大小写,因为这不仅仅是为了遵守语言的规定,更是对自己的一种规范,让自己少走弯路)这下好了,别说弯路了,直接他喵的翻沟里去了。
让MYSQL不区分表名大小写的方法其实很简单:
1.用ROOT登录,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
3.重新启动数据库即可。
1、Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
2、用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names=0
其中0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。