西数超哥博客
运维经验教程分享

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下的大小写规则问题
数据库名与表名是严格区分大小写的
表的别名是严格区分大小写的
列名与列的别名在所有的情况下均是忽略大小写的
变量名也是严格区分大小写的

赞(1)
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除。本站原创内容未经允许不得转载:西数超哥博客 » MySQL表名大小写在Windows和Linux上的不同