问题:
spring-boot 整合quartz的时候,连接windows的mysql的时候好好的,然而用linux上的mysql的时候,启动就报了这个错:
Failure obtaining db row lock: Table ‘test.QRTZ_LOCKS’ doesn’t exist
分析:
首先用windows的mysql是没问题的。
其实linux的mysql也是有这个表的,但由于是从windows复制过去的,所以表名都是小写的,而quartz启动的时候找的是大写,所以认为test.QRTZ_LOCKS这个表不存在。
原理就在于mysql有个配置属性:lower_case_table_names
windows上安装mysql,默认是1,代表忽略大小写
linux上安装mysql,默认是0,代表不忽略大小写
所以在windows好好的,在linux上就报错了。
解决
方法1:最快的解决办法,就是将所有quartz开头的表,都换成大写就好了
方法2:让linux也像windows一样,忽略大小写。
具体就是设置linux上的lower_case_table_names=1,就和windows一样了。步骤如