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

使用默认配置启动CnosDB单节点后客户端无法连接求助

CnosDB客户端连接失败排查方案

问题详情

  • 环境:CnosDB 2.4.0,修订版721266b
  • 操作流程:
    1. 执行命令启动单节点:sudo ./target/release/cnosdb run -M singleton
    2. 用cnosdb-cli连接后输入\d,触发报错:
      error sending request for url (http://localhost:8902/api/v1/sql?tenant=cnosdb&db=public&chunked=false): error trying to connect: tcp connect error: Connection refused (os error 61)
      
    3. 查看启动日志,未发现服务端口相关输出,启动日志内容如下:
      ➜  cnosdb git:(main) ✗ sudo ./target/release/cnosdb run  -M singleton
      [global]
      node_id = 1001
      host = 'localhost'
      cluster_name = 'cluster_xxx'
      store_metrics = true
      
      [deployment]
      mode = 'query_tskv'
      cpu = 8
      memory = 16
      
      [meta]
      service_addr = ['127.0.0.1:8901']
      report_time_interval_secs = 30
      
      [query]
      max_server_connections = 10240
      query_sql_limit = 16777216
      write_sql_limit = 167772160
      auth_enabled = false
      read_timeout_ms = 3000
      write_timeout_ms = 3000
      stream_trigger_cpu = 1
      stream_executor_cpu = 2
      
      [storage]
      path = '/var/lib/cnosdb/data'
      max_summary_size = '128M'
      base_file_size = '16M'
      flush_req_channel_cap = 16
      max_cached_readers = 32
      max_level = 4
      compact_trigger_file_num = 4
      compact_trigger_cold_duration = '1h'
      max_compact_size = '2G'
      max_concurrent_compaction = 4
      strict_write = false
      reserve_space = '0'
      
      [wal]
      enabled = true
      path = '/var/lib/cnosdb/wal'
      wal_req_channel_cap = 64
      max_file_size = '1G'
      flush_trigger_total_file_size = '2G'
      sync = false
      sync_interval = '0'
      
      [cache]
      max_buffer_size = '128M'
      partition = 8
      
      [log]
      level = 'info'
      path = '/var/log/cnosdb'
      
      [security]
      
      [service]
      grpc_enable_gzip = false
      enable_report = true
      ...
      

排查步骤

  1. 补全服务端口配置
    客户端请求的8902端口未在日志中出现,说明服务可能未绑定该端口。在配置的[service]段添加明确的端口绑定:

    [service]
    http_addr = "0.0.0.0:8902"
    rpc_addr = "0.0.0.0:8901"
    grpc_enable_gzip = false
    enable_report = true
    

    重启服务后再尝试连接。

  2. 验证端口监听状态
    执行命令检查8902端口是否被CnosDB进程监听:

    netstat -tulpn | grep cnosdb
    # 或
    lsof -i :8902
    

    若端口未被监听,去/var/log/cnosdb目录查看详细日志,排查启动失败原因(比如目录权限不足、依赖缺失等)。

  3. 修复目录权限
    启动用了sudo,但要确保数据和日志目录权限正确:

    ls -ld /var/lib/cnosdb /var/log/cnosdb
    

    若权限异常,执行命令修正:

    sudo chown -R cnosdb:cnosdb /var/lib/cnosdb /var/log/cnosdb
    
  4. 切换启动模式测试
    尝试用standalone模式启动服务,替代当前的singleton:

    sudo ./target/release/cnosdb run -M standalone
    

    启动后再测试客户端连接。

  5. 调整客户端连接参数
    若服务端绑定的是0.0.0.0,尝试用IP指定连接:

    cnosdb-cli --host 127.0.0.1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:01:19