Tidb设置修改了密码不实时生效

tidb 3.0.2 ,dm是v1.0.0-rc.1-23-gc1ba82a
默认创建的tidb是root,空密码,此时已经开启了dm同步了(all),正常同步时(sync),修改root密码(但是没update-task),但是dm仍然正常sync且running中,隔了一天多,才报执行sql异常,

[code=10006:class=database:scope=not-set:level=high] execute statement failed: ALTER TABLE `xxxdb`.`xxtable` ADD INDEX `xxxxindex`(`OUTTRADENO`): Error 1045: Access denied for user 'root'@'xx.xx.xx.xx worker' (using password: NO)

并且我在报错之前,还特意pause & resume(但是没update)(希望能够断开已有连接)

但是使用navicat连的时候,确实需要使用密码了

通过看文档,发现此情况需要stop & start,单纯的通过update-task不行

所以,是否需要修改task.yaml,的mode改成从all改成incremental?如果不改会不会先把已有库drop,再重新create?
如果改成 incremental 了,会从现有的relaylog继续订阅binlog,还是从master重新全量拉取binlog?

CREATE USER 'anjia'@'%' IDENTIFIED BY 'anjia';

GRANT Select ON *.* TO 'anjia'@'%';

FLUSH PRIVILEGES ;

此时用navicat正常连接,正常查询。

ALTER USER 'anjia'@'%' IDENTIFIED BY 'anjia1';

FLUSH PRIVILEGES ;

修改了密码,源navicat关闭后,重新打开,还是能正常连接。

把navicat进程关掉后,再次打开后,无法正常连接,说明密码生效了。

开启 DM 且 mode 为 all 时,会先进行全量数据的同步,如果数据量大,时间会比较久,等读到修改密码的 binlog event 再应用到下游是有时间差的。另外,stop & start 的时候不需要该 mode,会从之前的点开始拉取 binlog,不会 drop 已有数据。

已经从unit dump 变成了sync了,并且sync了一段时间了,想改密码,改完,又活蹦乱跳的运行了一两天,没事,这期间,我还pause & resume(未update也未stop,start),也正常。第三天,突然不行了。时间也太久了。是因为tidb缓存了session么?感觉有一定的安全隐患

根据上面给出的信息,是修改的时候已经是 sync 状态,需要确认下从修改到出现最开始的报错,是经过了1天还是三天?

有几个task已经暂停了,目前正在走stop start方式。 还有两个任务,到现在也是running状态,但是表从昨天下午就停止更新了,看日志没有任何报错。

表没有数据更新,但是连接一直在,显示 running 状态也没问题。

上游库是有业务数据的产生的

query-status 查下,看有没有异常信息。

没有任何报错信息,不过防止后边报错,又统一都stop & 修改配置文件& start的。

pause 任务的时候,对下游数据库的链接不会断开。只要没出现异常,这个链接还在,所以可以继续同步。

现在任务同步是否正常呢?

统一修改后,统一stop & restart的,现在没问题了

1 个赞

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