问题记录-服务端|JeecgBoot启动提示(QRTZ_LOCKS表不存在)

Jeecg-Boot启动提示:Table ‘jeecg-boot.QRTZ_LOCKS’ doesn’t exist
一、环境及版本

  1. CentOS 7.6 64位
  2. JeecgBoot-Master分支-Commits on Jun 4, 2020
  3. IntelliJ IDEA 2019.2
  4. JDK1.8
  5. Mysql5.7
  6. Maven3.6.1
  7. Redis6.0.4
  8. Lombok插件
二、复现步骤
  1. 使用idea导入jeecg-boot项目
  2. 创建mysql库
    create database \`jeecg-boot\` default character set utf8mb4 collate utf8mb4_general_ci;
  3. 执行sql脚本
    jeecg-boot/db/jeecg-boot-mysql.sql
  4. 使用Docker配置好Mysql数据库和Redis
  5. 启动JeecgApplication
  6. 控制台提示:Table ‘jeecg-boot.QRTZ_LOCKS’ doesn’t exist
三、排查原因
  1. 根据提示,应该是数据库表没有找到,提示表不存在
  2. 通过 Github Issues、JeecgBoot常见问题答疑,可知是由于数据库对大小写敏感导致。
四、解决方法
  1. 连接Mysql并进入mysql命令行
  2. 执行show global variables like '%lower_case%';
    查看当前mysql的大小写敏感配置
+------------------------+-------+ | Variable_name| Value | +------------------------+-------+ | lower_case_file_system | ON| | lower_case_table_names | 0| +------------------------+-------+

  1. lower_case_file_system
    表示当前系统文件是否大小写敏感,只读参数,无法修改。
    ON:表示当前系统对大小写不敏感
    OFF:表示当前系统对大小写敏感
  2. lower_case_table_names
    表示创建的数据表名,是否区分大小写
    lower_case_table_names = 1 :表示不区分大小写
    lower_case_table_names = 0 :表示区分大小写
  3. 编辑/etc/mysql/mysql.conf.d/mysqld.cnf文件,在[mysqld]下添加如下:
[mysqld] lower_case_table_names=1

  1. 保存,重启Mysql服务;
  2. 执行show global variables like '%lower_case%';
    再次查看当前mysql的大小写敏感配置,如以下配置即可:
+------------------------+-------+ | Variable_name| Value | +------------------------+-------+ | lower_case_file_system | OFF| | lower_case_table_names | 1| +------------------------+-------+

  1. 此时重启JeecgApplication,就不会再报Table 'jeecg-boot.QRTZ_LOCKS' doesn't exist


【问题记录-服务端|JeecgBoot启动提示(QRTZ_LOCKS表不存在)】1.博客中标注原创的文章,版权归原作者 懒洋君 所有;
2.未经原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。~

    推荐阅读