场景:看过 人人 快速开发的都明白,这里面有很多qrtz_
开头的11个表,这些表不是业务表,是定时任务的辅助表。情况是这样的,我在线下(windows系统),利用的是人人这同一套代码,业务表什么的都新建好了,线下测试也没有问题,上线(Linux系统)的时候,抛出这一段错误:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jffa.QRTZ_TRIGGERS' doesn't exist
问题:在数据库 中明明有这张表 qrtz_triggers
还是报这个错。
原因:这个错报的是在数据库里没有这个表 QRTZ_TRIGGERS
,其实数据库中有的是 qrtz_triggers
。区别在于一个是大写,一个是小写。默认情况下,mysql
是区分大小写的,所以为了避免这种问题,就需要把mysql
的区分大小写的属性给修改了。
解决办法:
- 修改
/etc/my.cnf
- 在
[mysqld]
节点下,加入一行:lower_case_table_names=1
- 重启
MySQL
即可。(service mysqld restart)