1.前言
最近在公司优化一个Android项目,服务端已经部署到正式环境中,不能直接在正式环境中测试,需要部署一套测试的环境,后台又比较忙,于是自己来了,在Ubuntu上安装好JDK,Tomcat和MySQL后,准备开始部署啦。发现一个问题,通过hibernate自动生成的有些表的名字全部变成了大写,而在Windows下则全部是小写,通过网上查资料,发现MySQL在Windows下是不区分大小写的,所以即使hibernate中定义的是大写的表名,生成对应的表时,也会转换成小写,但是在Linux系统下,MySQL是区分大小写的,所以导致其生成的表为大写。为了和Windows环境下保持一致,方便操作,打算更改MySQL的默认配置,使其表名也不区分大小写。
2.具体操作步骤
1.切换到root用户,进入 /etc/mysql/mysql.conf.d目录
2.打开mysqld.cnf文件,在【mysqld】下面增加一行:lower_case_table_names=1
3.重启mysql,使用命令:/etc/init.d/mysql restart
通过以上三步,即可将Ubuntu中mysql表名设置为不区分大小写,使通过hibernate生成的表名均为小写。
3.总结
这次部署总体还是比较顺利的,但是这个问题却困了我较长时间,其实具体操作就像我上述所说的,三步即可实现。但是我开始却走了不少弯路,曾一度想把mysql卸载后重装,这是下下策了。问题出在我对Linux和mysql都不熟悉,当出现问题,开始的时候没有冷静的分析和定位问题,导致耽搁了不少时间,后来冷静下来想想,把问题定位了,通过网上搜索到解决办法,解决了问题。所以以后对待问题,一定要淡定,重要的事情说三遍:淡定,淡定,淡定!!!