java.io.IOException: ErrorPacket [errorNumber=1193,||Unknown system variable 'binlog_c……Canal启动报错

本文分享了一次使用Canal将MySQL数据同步至Redis的实战经验,特别强调了MySQL版本需为5.6.2及以上,以确保binlog_checksum参数可用。同时,提醒读者在修改MySQL配置文件my.ini后,必须重启服务并确保修改正确,否则可能导致服务启动失败。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
自己想要尝试Redis同步MySQL来提升自己的web项目的查找速度,再看了几种连接模式后觉得由阿里使用的Canal查找binlog模式更加稳定符合未来的发展,所以进行了尝试但是其中真的坑很多很多。
一、首先看自己的MySQL的版本如果是5.62以下的话对不起请先升级版本吧
因为:binlog_checksum是MySQL 5.6.2才引入的,5.6.2以下根本就没有这个参数
所以最后一步启动Canal了才发现自己的版本不对,版本不对会出现上图的错误
二、修改了你的MySQL的my.ini之后一定要重启你的MySQL服务才有效,而且修改内容需要配对
在这里插入图片描述
不对的话MySQL的重启会报错

2025-06-11 05:07:06.877 [destination = example , address = host.docker.internal/192.168.65.254:3306 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: fetch failed by table meta:`canal_test`.`test` Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: com.alibaba.otter.canal.parse.exception.CanalParseException: fetch failed by table meta:`canal_test`.`test` Caused by: com.alibaba.otter.canal.parse.exception.CanalParseException: fetch failed by table meta:`canal_test`.`test` Caused by: java.io.IOException: ErrorPacket [errorNumber=1142, fieldCount=-1, message=SHOW command denied to user 'canal'@'localhost' for table 'test', sqlState=42000, sqlStateMarker=#] with command: show create table `canal_test`.`test` at com.alibaba.otter.canal.parse.driver.mysql.MysqlQueryExecutor.query(MysqlQueryExecutor.java:61) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlConnection.query(MysqlConnection.java:106) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.TableMetaCache.getTableMeta(TableMetaCache.java:186) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.getTableMeta(LogEventConvert.java:990) at com.alibaba.otter.canal.parse.inbound.mysql.dbsync.LogEventConvert.parseRowsEventForTableMeta(LogEventConvert.java:494) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.processEvent(MysqlMultiStageCoprocessor.java:293) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:276) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlMultiStageCoprocessor$SimpleParserStage.onEvent(MysqlMultiStageCoprocessor.java:239) at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:168) at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:125) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750)
最新发布
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值