环境
数据库从Mysql5.6导出后导入到Mysql5.7,操作系统是 Centos7
问题
在导入脚本中表名都是大写,导入后无论是命令行、navicat、还是Java代码,均提示表不存在。
Table 'XXX' doesn't exist
解决
原因是安装mysql5.7版本后,linux环境下默认是大小写敏感的。
主要是 lower_case_table_names=1 这个参数
把它加入到 my.cnf 的 [mysqld] 下面,然后重启Mysql。
但是此时会发现重启后,还是没有解决问题。
原因是大写表名是在之前就已经导入了,此时需要将所有表名中的大写字母改成小写!
这些都完成后,数据库中表名均已改为小写,此时Sql里大小写的表名均可识别