MySQL数据库在Linux系统中表名区分大小写的坑

 今天晚上一个朋友在Centos7.3上面部署SSM项目,由于开发的时候MySQL数据库使用的是Windows操作系统,移植时将数据库的表结构导成SQL文件在Centos7.3操作系统MySQL上面执行。数据库服务都一切准备正常,在启动Tomcat的时候,启动日志报出数据库的表名不存在,这就比较疑惑:明明在windows上面运行都一切正常,移植到Linux服务器上面就报表不存在,数据文件是直接从数据库导出来的。

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ‘t_starListtitle’ doesn’t exist

  后来我远程登录进服务器,查看启动日志,将报错的sql语句复制到MySQL服务器里面执行,发现执行的时会提示表不存在。
在这里插入图片描述
在这里插入图片描述
 经过比对发现数据库的表名L字母存在大小写差别,后来经查询发现原因:Windows下MySQL数据库默认不区分表名大小写,在Linux系统中MySQL数据库默认情况下表名要区分大小写,这就导致执行SQL语句的时候会报表不存在。
 解决方法:在[mysqld]下加入一行: lower_case_table_names=1, 修改完成后重启mysql服务即可。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值