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


1.博客中标注原创的文章,版权归原作者 懒洋君 所有;
2.未经原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。~

你可能感兴趣的:(问题记录-服务端,mysql,数据库,java,centos)