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-serverDocker 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/