Mysql在windows下和linux下对表名大小写默认要求的一个细节

今天在虚拟机里搭建项目环境,偷了下懒,直接把本机数据库中的表用sqlyog复制给虚拟机中的数据库,然后开始部署项目,项目一启动提示:

Table 'sdmqrt.QRTZ_LOCKS' doesn't exist

 我一看,找不到表,奇怪啊,我本机的数据库不可能少表啊,检查一遍虚拟机中的表也的确存在..这问题巧就巧在是qrtz_locks表,也就是调度任务表,spring quartz恰巧有那么一个bug,然后我整个人就掉进那个bug里面去了,不清楚这个bug的可以直接百度.

按照那个bug的处理方法怎么弄也不行,而且我也在怀疑,本机是好使的怎么可能虚拟机中就出现bug..各种折腾无解后,无奈就直接找到数据库建库脚本执行一遍,然后突然发现个问题,数据库中出现大写表名和小写表名,我瞬间想到个可能,重新执行一遍程序果然正常了..

然后百度了一下证实了我的猜想:linux下mysql默认是区别表名大小写的,这个和windows下不一样,这个默认处理方式很诡异..至于改成不区分大小写这个百度一下有的是就不列举了.

原文地址:https://www.cnblogs.com/chyu/p/4264819.html