目录

Mac M1 怎么装 ClickHouse?Docker 和二进制两条路都给你走通

在 M1 的 Mac 上装 ClickHouse,最容易踩的坑是镜像架构对不上。

很多老教程还在用 yandex/clickhouse-server 这个镜像名,它早就改名了,而且不一定有 arm64 版本。

下面给两条路:图省事用 Docker,想要原生性能就用官方二进制。

先说结论:选哪种方式

两种方式都能跑通,区别在这。

方式 适合场景 是否原生 arm64 上手难度
Docker 临时测试、隔离环境、不想污染本机 取决于镜像标签
官方二进制 本地长期开发、追求性能

如果只是想跑几条 SQL 试试,Docker 五分钟搞定。

要是打算在 M1 上长期开发,建议直接用二进制,省掉一层虚拟化开销。

Docker 方式安装

镜像名一定要用 clickhouse/clickhouse-server,不要再用 yandex/clickhouse-server

后者是早期的旧名,ClickHouse 在 2021 年后已经把官方镜像迁到了 clickhouse 这个组织下。

拉取镜像:

docker pull clickhouse/clickhouse-server

Docker Desktop 在 M1 上会自动拉 arm64 的镜像层,一般不用手动指定平台。

如果遇到架构警告,可以显式加 --platform linux/arm64

启动容器:

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

这里要注意端口。

8123 是 HTTP 接口,9000 才是原生 TCP 协议端口,命令行客户端默认走的是 9000,不是 8123。

原文里那条 clickhouse-client --host=localhost --port=8123 其实是错的,端口写错了,连不上。

检查容器状态:

docker ps

连接服务,推荐直接进容器里用自带的客户端,省得本机再装一遍:

docker exec -it clickhouse-server clickhouse-client

进去之后跑一句 SELECT version(); 能看到版本号,就说明通了。

官方二进制安装

官方现在推荐的安装命令很简单,一行脚本自动识别架构。

老教程里那个 https://builds.clickhouse.tech/master/macos-aarch64/clickhouse 的地址已经失效了,clickhouse.tech 这个域名也换成了 clickhouse.com

正确的做法是用官方脚本:

curl https://clickhouse.com/ | sh

脚本会自动下载对应 macOS arm64 的可执行文件到当前目录,下完赋好执行权限。

下载完成后,直接在当前目录启动服务端:

./clickhouse server

另开一个终端窗口,启动客户端连上去:

./clickhouse client

关于原文提到的 sudo ./clickhouse install 这一步。

这步是把二进制安装成系统服务(注册到 /usr/bin、生成配置目录),不是必须的。

本地开发其实跑 ./clickhouse server 就够了,装成系统服务反而麻烦。

我自己在 macOS 上第一次跑 install 也报过权限相关的错,后来发现根本不需要这步,直接 server 起来就能用,所以原文那句"不清楚是否需要"的疑虑,答案是:本地玩耍可以跳过。

常见问题 FAQ

Mac M1 上 ClickHouse Docker 镜像支持 arm64 吗?

支持。

clickhouse/clickhouse-server 官方镜像提供了 arm64 的多架构版本,M1 拉取时会自动匹配。

如果你的 Docker 版本较老识别不准,加上 --platform linux/arm64 强制指定即可。

连接 ClickHouse 应该用哪个端口?

看用什么客户端。

命令行 clickhouse-client 走原生 TCP 协议,端口是 9000

HTTP 接口(浏览器、curl、部分可视化工具)走 8123

别把这两个搞混,这是新手最常见的连接失败原因。

yandex/clickhouse-server 还能用吗?

不建议。

这个镜像名是历史遗留,已经停止更新,官方镜像统一在 clickhouse/clickhouse-server

继续用旧镜像可能拿到的是几年前的老版本。

二进制安装必须执行 sudo install 吗?

不必须。

./clickhouse server 已经能直接启动服务,install 只是把它注册成系统级安装,适合需要开机自启的场景。

本地开发跳过这步完全没问题。

写在最后

这篇里的命令我尽量按官方现在的口径核对了一遍,老教程里失效的域名、停更的镜像名、写错的端口都做了订正。

但 ClickHouse 版本更新挺快,如果你照着做发现某条命令对不上,以 官方安装文档 为准最稳妥。

如果大家在 M1 上装 ClickHouse 还踩到别的坑,或者对端口、配置有疑问,欢迎在评论区交流~~~

版权声明

未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!

本文原文链接: https://fiveyoboy.com/articles/install-clickhouse-on-mac-m1/

备用原文链接: https://blog.fiveyoboy.com/articles/install-clickhouse-on-mac-m1/