环境:ubunftu 18 , Mysql 5.7
场景一
初始化别人的表到自己的数据库环境,启动项目会报错找不到项目中的某些表,这种情况一般是由于在linux环境中,mysql的库名和表明默认是大小写敏感的,该如何解决呢:
首先删掉初始化的库,修改mysql的配置文件,设置为大小写不敏感:
进入 /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]
这行下面追加:lower_case_table_names=1
重启mysql:service mysql restart
然后重新初始化库就可以了
场景二
数据库已经初始化好了,并且包含了表名大写的表,修改lower_case_table_names=1
,重启后会发现表名大写的表不见了,这时候就需要做单独的处理:
将lower_case_table_names=1
改回lower_case_table_names=0
重启mysql:service mysql restart
将大写的表名手动改为小写
再次设置lower_case_table_names=1
重启mysql:service mysql restart
小结
大多场景推荐大小写不敏感,降低出错概率,提高平台兼容性