docker - 如何连接到本地 clickhouse db 表单容器?
问题描述
我开始研究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"
. 我究竟做错了什么?
解决方案
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