【问题标题】:How to connect to local clickhouse db form container?如何连接到本地 clickhouse db 表单容器?
【发布时间】:2020-11-17 04:57:46
【问题描述】:

我开始研究 Docker,遇到了一些问题。我使用 Ubuntu 并有本地 clickhouse 数据库,还有容器中的脚本,假设在 db 中写入一些数据:

clickhouse-client --host=127.0.0.1 --port=8123 --password=password --query "INSERT INTO some.table FORMAT CSV"

当我厌倦运行它时,得到:

Code: 210. DB::NetException: Connection refused (127.0.0.1:8123)

当我尝试连接表单 DataGrip 时它起作用了。我也用--network="host" 运行docker。 我做错了什么?

【问题讨论】:

    标签: docker clickhouse


    【解决方案1】:

    DataGrip 使用 8123 端口上的 HTTP-endpoint 连接到 ClickHouse。

    ClickHouse 客户端在端口 9000 上使用TCP-endpoint。

    看来需要发布9000端口:

    docker run -d --name ch -p 8123:8123 -p 9000:9000 --ulimit nofile=262144:262144 yandex/clickhouse-server
    

    【讨论】:

      【解决方案2】:

      clickhouse-client 使用端口 9000,因为它通过本机 tcp 协议工作

      jdbc 使用 http 端口 8123

      您可以将端口从容器映射到您的主机系统 (-p 127.0.0.1:8123:8123):

      docker run  -d -p 127.0.0.1:8123:8123 -p 127.0.0.1:9000:9000 --name jdbc-test --ulimit nofile=262144:262144 yandex/clickhouse-server:latest
      

      【讨论】:

        猜你喜欢
        • 2014-10-29
        • 2017-05-01
        • 2019-03-10
        • 2020-03-31
        • 1970-01-01
        • 2014-05-19
        • 1970-01-01
        • 1970-01-01
        • 2021-07-18
        相关资源
        最近更新 更多