sync-diff-inspector指定 DM 的 `task-name`来检测数据,数据源和task中配置密码是加密的,启动任务报错

数据源和task任务中的上下游用户密码是dmctl encrypt加密过的,在 sync-diff-inspector 的配置文件中想要 指定 DM 的 task-name来检测数据一致性,发现直接报下面错误,这种暂时是不支持吗?

【TiDB 使用环境】测试环境
【TiDB 版本】8.5.2
【部署方式】机器部署
【操作系统/CPU 架构/芯片详情】
【机器部署详情】CPU大小/内存大小/磁盘大小
【集群数据量】
【集群节点数】
【问题复现路径】数据源和task任务中的上下游用户密码是dmctl encrypt加密过的,在 sync-diff-inspector 的配置文件中想要 指定 DM 的 task-name来检测数据一致性,启动任务发现直接报下面错误,这种暂时是不支持吗?
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】[2026/01/14 14:24:54.566 +08:00] [ERROR] [source.go:297] [“failed to configure session”] [data-source=mysql-02] [error=“Error 1045 (28000): Access denied for user ‘dm_user1’@‘10.10.10.10’ (using password: YES)”] [errorVerbose=“Error 1045 (28000): Access denied for user ‘dm_user1’@‘10.10.10.10’ (using password: YES)\ngithub.com/pingcap/errors.AddStack\n\t/root/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20240318064555-6bd07397691f/errors.go:178\ngithub.com/pingcap/errors.Trace\n\t/root/go/pkg/mod/github.com/pingcap/errors@v0.11.5-0.20240318064555-6bd07397691f/juju_adaptor.go:15\ngithub.com/pingcap/tidb-tools/sync_diff_inspector/source/common.tryConnectMySQL\n\t/workspace/source/tidb-tools/sync_diff_inspector/source/common/conn.go:45\ngithub.com/pingcap/tidb-tools/sync_diff_inspector/source/common.ConnectMySQL\n\t/workspace/source/tidb-tools/sync_diff_inspector/source/common/conn.go:92\ngithub.com/pingcap/tidb-tools/sync_diff_inspector/source.initDBConn\n\t/workspace/source/tidb-tools/sync_diff_inspector/source/source.go:291\ngithub.com/pingcap/tidb-tools/sync_diff_inspector/source.NewSources\n\t/workspace/source/tidb-tools/sync_diff_inspector/source/source.go:117\nmain.(*Diff).init\n\t/workspace/source/tidb-tools/sync_diff_inspector/diff.go:137\nmain.NewDiff\n\t/workspace/source/tidb-tools/sync_diff_inspector/diff.go:95\nmain.checkSyncState\n\t/workspace/source/tidb-tools/sync_diff_inspector/main.go:117\nmain.main\n\t/workspace/source/tidb-tools/sync_diff_inspector/main.go:104\nruntime.main\n\t/root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.1.linux-amd64/src/runtime/proc.go:272\nruntime.goexit\n\t/root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.1.linux-amd64/src/runtime/asm_amd64.s:1700”] [stack=“github.com/pingcap/tidb-tools/sync_diff_inspector/source.initDBConn\n\t/workspace/source/tidb-tools/sync_diff_inspector/source/source.go:297\ngithub.com/pingcap/tidb-tools/sync_diff_inspector/source.NewSources\n\t/workspace/source/tidb-tools/sync_diff_inspector/source/source.go:117\nmain.(*Diff).init\n\t/workspace/source/tidb-tools/sync_diff_inspector/diff.go:137\nmain.NewDiff\n\t/workspace/source/tidb-tools/sync_diff_inspector/diff.go:95\nmain.checkSyncState\n\t/workspace/source/tidb-tools/sync_diff_inspector/main.go:117\nmain.main\n\t/workspace/source/tidb-tools/sync_diff_inspector/main.go:104\nruntime.main\n\t/root/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.1.linux-amd64/src/runtime/proc.go:272”]
【其他附件:截图/日志/监控】

1 个赞

测试环境试过明文可以吗 ? sync-diff-inspector 可能不支持直接dmctl encrypt加密把. 可以解密后再填到配置里. 命令是dmctl decrypt ‘your-encrypted-password-from-dm-task’

1 个赞

明文没问题的,我是怕麻烦,想直接引用加密的task配置信息 :joy:

1 个赞

先保证明文不出问题再测试密文看看