服务器ClickHouse教程:从零安装到建表查询全流程

ClickHouse 是一款开源的列式数据库管理系统,主要用于在线分析处理(OLAP)场景,能够对海量数据进行极速查询。
如果你正准备在服务器上部署一套 ClickHouse,但不确定从何入手,下面这套流程可以帮你从零完成安装、启动、建表到基础查询的完整闭环。
本文以 Ubuntu 22.04 和 CentOS 7 为例,其他 Linux 发行版操作类似,主要差异在于包管理命令。

部署前需要确认的几件事

ClickHouse 对系统资源有一定要求,官方建议至少 4GB 内存,但测试环境 2GB 也能跑起来。
开始之前,请通过 SSH 登录服务器,并确认以下条件:

  • 操作系统:Ubuntu 20.04/22.04、CentOS 7/8、Debian 10+ 等主流版本均可,本文演示 Ubuntu 22.04。
  • 权限:拥有 sudo 或 root 权限,因为需要安装软件包和修改系统配置。
  • 网络:服务器能访问外网,以便添加官方软件源并下载安装包。
  • 端口:默认会用到 8123(HTTP 接口)和 9000(TCP 接口),确保防火墙未拦截,或者稍后按需放行。

先用一条命令确认系统版本和架构:

lsb_release -a
uname -m

输出应显示 x86_64 架构,ClickHouse 对 ARM 的支持也在逐步完善,但本文以 x86_64 为主。

在 Ubuntu 上安装 ClickHouse 服务

ClickHouse 官方提供了 apt 和 yum 仓库,推荐直接通过包管理器安装,便于后续升级。

添加官方 GPG 密钥和软件源

依次执行以下命令,将 ClickHouse 仓库添加到系统:

sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754
echo "deb https://packages.clickhouse.com/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
sudo apt-get update

如果 apt-key 提示弃用,不影响本次安装,继续执行即可。

安装 server 和 client 软件包

sudo apt-get install -y clickhouse-server clickhouse-client

安装过程中会提示设置默认用户密码,可以留空直接回车,后续再通过配置文件修改。
安装完成后,ClickHouse 会自动创建 clickhouse 系统用户和必要的目录。

启动服务并设置开机自启

sudo systemctl start clickhouse-server
sudo systemctl enable clickhouse-server

检查服务状态:

sudo systemctl status clickhouse-server

看到 active (running) 即表示启动成功。
如果启动失败,可以用 journalctl -u clickhouse-server -n 50 查看最近 50 行日志,常见原因是端口被占用或配置文件语法错误。

连接与基础操作

ClickHouse 安装后自带命令行客户端 clickhouse-client,默认连接本机 9000 端口。

本地连接测试

clickhouse-client

如果安装时设置了密码,需要用 clickhouse-client --password 输入密码。
连接成功后会显示 :) 提示符。

创建数据库和表

ClickHouse 支持标准 SQL 语法,但建表时需要指定引擎。
对于大多数场景,MergeTree 系列引擎是首选。

CREATE DATABASE IF NOT EXISTS demo;

CREATE TABLE demo.logs (
    event_time DateTime,
    level String,
    message String
) ENGINE = MergeTree()
ORDER BY event_time;

ORDER BY 决定了数据在磁盘上的排序方式,对查询性能影响很大,通常选择查询中常用的过滤字段。

插入与查询数据

INSERT INTO demo.logs VALUES (now(), 'INFO', 'service started');
INSERT INTO demo.logs VALUES (now(), 'ERROR', 'connection timeout');

SELECT * FROM demo.logs WHERE level = 'ERROR';

查询结果会以表格形式返回。
ClickHouse 的查询速度在数据量增大后优势更明显,可以尝试插入更多数据后再执行聚合查询。

安全与远程访问配置

默认情况下,ClickHouse 只监听本地地址,且 default 用户没有密码。
如果需要在其他机器上连接,必须修改配置。

允许远程连接

编辑配置文件 /etc/clickhouse-server/config.xml,找到 部分,将 :: 或 0.0.0.0 取消注释:

0.0.0.0

保存后重启服务:

sudo systemctl restart clickhouse-server

同时确认服务器防火墙放行了 9000 和 8123 端口。
如果使用云服务器,还需在安全组中添加入站规则。

设置用户密码

编辑 /etc/clickhouse-server/users.xml,在 下找到 default 用户,添加 标签:

你的强密码

修改后重启服务,之后连接就需要提供密码。
生产环境建议创建独立用户并限制权限,不要长期使用 default 用户。

常见问题与避坑要点

启动时报错“Address already in use”:说明 9000 或 8123 端口被其他程序占用。
用 ss -tlnp | grep 9000 查看占用进程,停止冲突服务或修改 ClickHouse 监听端口。

内存不足导致查询被终止:
ClickHouse 默认会尽量使用可用内存,
如果服务器内存较小,
可以在 users.xml 中设置 max_memory_usage 限制单个查询的内存上限,
例如 10000000000(约 10GB)。

插入数据后查询不到:检查 INSERT 是否成功执行,以及查询条件是否与数据匹配。
MergeTree 引擎的数据写入后会有短暂合并过程,但通常立即可查。

远程连接被拒绝:依次检查 listen_host 配置、防火墙规则、云服务器安全组,以及用户是否允许从远程地址访问(users.xml 中的 networks 配置)。

升级注意事项:通过包管理器升级 ClickHouse 通常比较平滑,但跨大版本升级前建议先备份数据目录 /var/lib/clickhouse/,并查阅对应版本的发布说明。

完成以上步骤后,你已经拥有一个可用的 ClickHouse 单机实例。
后续可以根据数据量增长情况,进一步了解分布式表、副本和分片配置。
如果只是用于测试或学习,当前配置已经足够;
如果准备承载生产流量,务必先设置好密码、限制远程访问来源,并规划好备份策略。

分享到:
上一篇
服务器PostgreSQL教程:从安装到远程连接
下一篇
服务器TiDB教程:单机快速部署与集群搭建入门
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意