今天是相当郁闷,开发一直在本地mysql数据进行,完成后测试连接LINUX服务器数据库,结果一直报错找不到表!另我纳闷的是服务器数据库里明明是建了表的,用mysql控制台测试连接执行查询也没问题,可程序就是一直报错!
于是开始反复测试找问题,刚开始以为是驱动或mysql版本不匹配等引起的原因,但是重新写了个JDBC连接执行查询发现没问题!说明驱动没问题!于是怀疑连接池的问题,于是将程序里的连接改成新写的JDBC连接,仍然出错!这时候我都快疯了!于是将项目里的SQL语句拷贝出来一句放到新写的JDBC程序里去执行,终于出了同样的错。问题也一点点的浮出了水面!因为一直在项目里写SQL都是习惯了用大写,但是临时写的时候比较仓促一般都用小写,所以临时写的程序就可以执行,但是项目里的SQL却无法执行,因为刚开始一直想不到mysql会区分大小写,因为在自己机器上是没有问题的。后来查了资料发现,是因为操作系统的原因,mysql在LINUX下默认是区分大小写的。下面我们就更改mysql配置让其不区分大小写:
让MYSQL不区分表名大小写的方法其实很简单:
1.用ROOT登录,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
3.重新启动数据库即可。
就这个小问题整整折腾了我3个多小时!NND,郁闷啊!问题总结在这里希望大家以后别走我这么多弯路!