Linux下设置mysql不区分大小写
部署生产环境后端抛出 java.sql.SQLSyntaxErrorException: Table ‘USER.market’ exist,显示一直在数据库找不到user表,当时感觉很奇怪,怎么会找不到呢!本地环境都是ok的。后来发现MySQL在windows下是默认不区分的。linux是默认区分大小写的,我的sql用了工具美化格式就变成大写了,所以就抛出异常。
1.查看当前的MySQL是否开起区分大小写
show variables like '%case_table%';
lower_case_table_names=1(1为不区分)
lower_case_table_names=0(0为区分大小写)
解决方法
1.自定义安装的MySQL通常配置在/etc/my.cnf这里(其他位置请自行修改)
vim /etc/my.cnf;
在[mysqld]标签下面加入lower_case_table_names=1
(设置为不区分大小写)
修改后保存 重启MySQL服务
service mysqld restart;
2.宝塔安装的MySQL,直接打开MySQL的配置管理在第6行下面加入
lower_case_table_names=1
在服务点击重启服务和重载配置都可以。