Maxwell Couldn't find table xx in database xx

2025-12-13 15:03:21 1

开发环境的maxwell中间挂过一段时间, 再启动一直报这个错

java.lang.RuntimeException: Couldn't find table device_info_change_log_202512 in database mp-device
    at com.zendesk.maxwell.replication.TableCache.processEvent(TableCache.java:31)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.getTransactionRows(BinlogConnectorReplicator.java:538)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.getRow(BinlogConnectorReplicator.java:662)
    at com.zendesk.maxwell.replication.BinlogConnectorReplicator.work(BinlogConnectorReplicator.java:186)
    at com.zendesk.maxwell.util.RunLoopProcess.runLoop(RunLoopProcess.java:34)
    at com.zendesk.maxwell.Maxwell.startInner(Maxwell.java:256)
    at com.zendesk.maxwell.Maxwell.start(Maxwell.java:183)
    at com.zendesk.maxwell.Maxwell.main(Maxwell.java:287)

报错是因为 com.zendesk.maxwell.schema.Database#tableList 内没有新表

 tableList 又来源于 com.zendesk.maxwell.schema.MysqlSavedSchema#restoreFullSchema 的sql结果

String sql =
    "SELECT " +
            "d.id AS dbId," +
            "d.name AS dbName," +
            "d.charset AS dbCharset," +
            "t.name AS tableName," +
            "t.charset AS tableCharset," +
            "t.pk AS tablePk," +
            "t.id AS tableId," +
            "c.column_length AS columnLength," +
            "c.enum_values AS columnEnumValues," +
            "c.name AS columnName," +
            "c.charset AS columnCharset," +
            "c.coltype AS columnColtype," +
            "c.is_signed AS columnIsSigned " +
            "FROM `databases` d " +
            "LEFT JOIN tables t ON d.id = t.database_id " +
            "LEFT JOIN columns c ON c.table_id=t.id " +
            "WHERE d.schema_id = ? " +
            "ORDER BY d.id, t.id, c.id";

随后全局搜索 insert into `tables` , 找到了这个方法 com.zendesk.maxwell.schema.MysqlSavedSchema#saveFullSchema

调用栈往上

 com.zendesk.maxwell.schema.MysqlSchemaStore#captureAndSaveSchema

MysqlSavedSchema savedSchema = new MysqlSavedSchema(serverID, caseSensitivity, captureSchema(), initialPosition);

其中 captureSchema() 使用了这么一条sql SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME FROM INFORMATION_SCHEMA.SCHEMATA 查询最新的数据库表信息

com.zendesk.maxwell.schema.MysqlSchemaStore#captureAndSaveSchema 的调用栈再往上, 找到了这行 com.zendesk.maxwell.Maxwell#startInner

if (config.recaptureSchema) {
    mysqlSchemaStore.captureAndSaveSchema();
}

从文档找到这行说明

https://maxwells-daemon.io/config/#mysql
https://maxwells-daemon.io/apidocs/com/zendesk/maxwell/MaxwellConfig.html#recaptureSchema
optionargumentdescriptiondefault
recapture_schemaBOOLEANrecapture the latest schema. Not available in config.properties.false
重新获取最新的 schema 在 config.properties 中不可用

我们在命令行启动时添加参数 --recapture_schema true

等待程序拉取最新 schema, 解决

maxwell 1.35.5

Maxwell Couldn't find table xx in database xx

开发环境的maxwell中间挂过一段时间, 再启动一直报这个错java.lang.RuntimeException: Couldn't find table device_info_change_log_202512 in database mp-device at com.zendesk.
2025-12-13

freemarker 时间显示不正常 设置时区

项目在本地开发的时候显示正常,部署上服务器就一直差8个小时,最后发现freemarker官方文档有这样的说明time_zone:时区的名称来显示并格式化时间。 默认情况下,使用JVM的时区。 也可以是 Java 时区 API 接受的值,或者 "JVM default" (从 FreeMarker 2
2020-03-28
IDEA 2019.1 xml 不高亮

IDEA 2019.1 xml 不高亮

前几天更新了idea后,发现xml里的代码都没有了高亮,变得跟记事本一个德性了打开setting ,搜索 File Types,找到xml项, 查看下方的匹配格式,果然没有xml,(idea真是厉害)点击右方的+,输入*.xml,点击ok,解决问题
2020-03-28

npm install 淘宝镜像

npm install --registry=https://registry.npm.taobao.org
2020-03-28
Java中方法的参数传递机制

Java中方法的参数传递机制

来看一段代码 public class Man { private String name; private Integer age; public String getName() { return name; } publi
2020-03-28
基于自定义注解手写权限控制

基于自定义注解手写权限控制

方法一: AOP 方法二: 拦截器项目结构项目依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-w
2020-03-28

Docker 部署 详细全过程 附代码

Docker 部署本站 全过程环境:CentOS7.61. 安装Docker其他版本CentOS可以参考这个https://help.aliyun.com/document_detail/187598.html查看本机内核版本,内核版本需高于 3.10uname -r 确保 yum 包最新yum u
2020-03-28

SpringBoot 启动普通java工程

引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.0.9</version> </dependency>
2020-03-28

Vue.js DOM操作

<template> <input type="button" @click="reply($event)" value="回复"> </template> export default { methods: { replyFun(e) {
2020-03-29
CentOS7编译调试OpenJDK12

CentOS7编译调试OpenJDK12

1. 下载源码https://hg.openjdk.java.net/jdk/jdk12点击左侧的browse,再点击zip,就可以下载zip格式的源码压缩包。unzip xxx.zip 解压文件2. 安装jdkyum install java-11-openjdk-devel -y3. 运行con
2020-04-23
编写自己的Spring Boot Starter

编写自己的Spring Boot Starter

1.新建一个maven项目命名规则统一是xxx-spring-boot-starter完整pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"
2020-06-29