You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Liquibase更新变更集日志至DATABASECHANGELOG时报错求助

Liquibase执行建表后插入DATABASECHANGELOG报错3098原因分析

问题背景

执行以下SQL建表语句:

-- liquibase formatted sql

-- changeset userName:1
CREATE TABLE JOB_INSTANCE
(
    INSTANCE_ID BIGINT       NOT NULL PRIMARY KEY,
    VERSION         BIGINT,
    JOB_NAME        VARCHAR(100) NOT NULL,
    JOB_KEY         VARCHAR(32)  NOT NULL,
    constraint JOB_INST_UN unique (JOB_NAME, JOB_KEY)
) ENGINE = InnoDB;

环境信息:

  • Liquibase版本:4.3.5
  • MySQL版本:8.0.32
  • JDBC连接器版本:mysql-connector-java-8.0.26

Liquibase配置:

changeLogFile=changelog/db-changelog-master.xml
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://server-host:3306/schema?serverTimezone=UTC
username=root
password=*******
liquibase.hub.mode=off

错误现象

JOB_INSTANCE表创建成功,但出现如下错误:

Caused by: liquibase.exception.DatabaseException: The table does not comply with the requirements by an external plugin. [Failed SQL: (3098) INSERT INTO schema.DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, `DESCRIPTION`, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('1', 'user', 'changesets/schemas/script1.sql', NOW(), 1, '8:b52bd973e60d550446b6f005206925c6', 'sql', '', 'EXECUTED', NULL, NULL, '4.17.1', '7953110735')]

原因分析

  1. MySQL外部插件约束冲突
    错误码3098对应MySQL的ER_TABLE_NOT_COMPLIANT_FOR_PLUGIN,说明你的MySQL实例启用了外部插件(如MySQL Enterprise Audit、Validate Password等安全类插件),而DATABASECHANGELOG表的结构未满足该插件的强制要求。常见场景包括:
  • 插件要求表必须使用InnoDB存储引擎,但DATABASECHANGELOG使用了MyISAM等其他引擎;
  • 插件对表的字符集、字段长度或数据类型有严格限制,现有表结构不匹配。
  1. Liquibase版本不兼容
    错误日志中DATABASECHANGELOG的LIQUIBASE字段值为4.17.1,但你实际使用的Liquibase版本是4.3.5。这表明之前可能用更高版本的Liquibase初始化过DATABASECHANGELOG表,不同版本的Liquibase对该表的结构定义存在差异,低版本写入时触发了插件的合规性检查。

  2. Schema或权限问题
    JDBC URL指定的目标schema中,DATABASECHANGELOG表可能存在结构异常,或者当前数据库用户对该表的操作权限不足,导致插件检查失败。

验证步骤

  • 执行SHOW PLUGINS;查看MySQL已启用的插件,重点排查Audit、Security类插件;
  • 执行DESCRIBE schema.DATABASECHANGELOG;检查表的存储引擎、字段类型等是否符合插件要求;
  • 对比Liquibase 4.3.5官方默认的DATABASECHANGELOG表结构,与现有表进行差异比对。

内容的提问来源于stack exchange,提问作者sunny-java-dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 01:37:25