MySQL表名大小写在Windows和Linux上的不同

今天将一个项目放到公司服务器上,在调试的时候突然发现系统登录不上去了,控制台报错代码“1146”,说表找不到,但是在我本地运行又是没问题的。由于数据非常大,折腾来折腾去搞了一下午。最后发现其实是MySQL本身的坑造成的。

原因
MySQL在Windows上的表名是不区分大小写的,而在Linux上严格区分大小写。

偏偏公司的初始数据库表名全是小写的,而sql查询里面又大写的,造成一直找不到要查询的表。

解决办法
修改Linux上的MySQl配置文件,使它不区分大小写

Linux版本:Ubuntu 14.04 MySQl版本:5.7.20

修改my.cnf,命令:vim /etc/mysql/my.cnf
在[mysqld]后面添加lower_case_table_names=1
保存后,重启mysql即可
MySql在Linux下的大小写规则问题
数据库名与表名是严格区分大小写的
表的别名是严格区分大小写的
列名与列的别名在所有的情况下均是忽略大小写的
变量名也是严格区分大小写的

西数超哥学习乐园,西数超哥基础运维经验教程分享的学习乐园,西数超哥博客,运维经验教程交流学习分享的博客

原创文章,作者:zhang sir,如若转载,请注明出处:https://www.ysidc.top/7104.html