You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TiDB查询TiFlash复制表报错ERROR 1105 (HY000)求助

TiFlash查询报RPC连接拒绝问题排查方案

针对你遇到的TiDB 6.5.0集群中,TiFlash副本状态显示available但查询时报错rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 172.18.78.60:3930: connect: connection refused"的问题,按以下步骤排查:

  • 验证TiFlash节点3930端口监听状态
    登录IP为172.18.78.60的TiFlash节点,执行ss -tulnp | grep 3930,确认端口是否处于LISTEN状态。如果无结果:

    • 检查TiFlash进程是否存活:ps aux | grep tiflash,或者用systemd管理的话执行systemctl status tiflash。
    • 查看TiFlash日志(默认路径/tidb-deploy/tiflash-9000/log/tiflash.log),搜索listen或3930,排查是否有端口绑定失败(如端口被占用、权限不足)的报错。
  • 测试TiDB到TiFlash的端口连通性
    登录任意TiDB节点,执行nc -zv 172.18.78.60 3930或telnet 172.18.78.60 3930,直接验证端口连通性。若不通:

    • 确认TiFlash节点的tiflash.toml配置中,[tcp]段的listen_host是否设置为对外IP或0.0.0.0(如果绑定127.0.0.1,外部节点无法访问)。
    • 检查节点间网卡配置和路由,确认处于同一子网且无异常路由规则。
  • 检查TiFlash节点的注册信息
    执行SQL查询TiFlash节点的注册状态:

    SELECT * FROM information_schema.tiflash_nodes;
    

    确认返回的address字段是TiFlash节点的正确IP和3930端口。如果地址错误,重启TiFlash节点让其重新向PD注册。

  • 验证TiFlash服务可用性
    在TiFlash节点本地执行curl http://172.18.78.60:8123/status,检查HTTP服务是否正常响应。若响应异常,说明TiFlash服务未正常启动,需进一步排查日志中的启动报错。

  • 强制路由查询到TiFlash验证
    使用显式指定TiFlash副本的查询语句测试:

    SELECT COUNT(*) FROM table1 USE INDEX(tiflash_replica) WHERE field = 'value';
    

    若仍报错,确认连接问题;若能正常执行,说明TiDB优化器未自动选择TiFlash副本,执行ANALYZE TABLE table1;更新表统计信息后重试。

内容的提问来源于stack exchange,提问作者junglerider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 06:18:29