[CDC:ErrMySQLTxnError]MySQL txn error: Error 8121

【TiDB 使用环境】测试环境
【TiDB 版本】上游集群A是v8.1.2,下游集群B是v7.1.5
【操作系统】ubuntu20.04
【部署方式】腾讯云cvm虚拟机部署
【集群数据量】30G
【集群节点数】5台机器:1台monitor+1台tidb-server+3台数据节点(含3个tidb-server、3个tiflash、3个tikv、3个pd)
【问题复现路径】
1、br backup从B集群备份全库,在全新的A集群br restore全库;
2、用root账号,sync_diff_inspector校验数据一致性通过;
3、新建账号user1,授权,并配置到sync_diff_inspector配置文件里重新校验上下游数据:
GRANT SYSTEM_VARIABLES_ADMIN ON . TO ‘user1’@‘%’;

GRANT INSERT,CREATE ON tidb_cdc.* TO ‘user1’@‘%’;

GRANT SELECT,INSERT,DELETE,CREATE,ALTER,SHOW DATABASES,TRIGGER,EVENT,RELOAD,REPLICATION CLIENT ON . TO ‘user1’@‘%’;

set default role all to user1;

【遇到的问题:问题现象及影响】
校验到一个表报错:
“message”: “[CDC:ErrReachMaxTry]reach maximum try: 8, error: Failed query info: UPDATE … SET … WHERE id = ? LIMIT 1; : [CDC:ErrMySQLTxnError]MySQL txn error: Error 8121 (HY000): privilege check for ‘Update’ fail”
但是我使用账号user1在navicat手动update上面报错里的表的某个字段,是可以update成功的,说明有update权限,为什么报错提示没有update权限呢?

1 个赞

changefeed里面的 sink-uri参数捞出来看看,往下游同步的用户是user1嘛?

如果是user1,下游临时加的权限,可能还需要重启一下changefeed。

2 个赞

changfeed任务创建命令:
tiup cdc:v8.1.2 cli changefeed create --server=http://下游:8300 --sink-uri=“mysql://user1:密码@下游tidb:4000” --changefeed-id=“test2-to-test” --start-ts=“457047318221815833” --config=./changefeed.toml --no-confirm >> cdc-sync.log
update权限是临时加的,然后我resume重启了一下changefeed。刚才又报错了一个drop失败,同样的resume处理方式,现在list查看是normal状态,没报错了

2 个赞

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。