Centos安装clickhouse

1、下载

下载地址:https://packages.clickhouse.com/rpm/stable/

包的作用

包名 架构 主要功能 包含内容
clickhouse-common-static x86_64 核心引擎 ​可执行文件、静态库
clickhouse-server​ noarch 服务端配置​ 服务脚本、配置文件
clickhouse-client​ noarch 客户端工具​ 客户端配置、连接工具

2、检查

检查是否安装过clickhouse

bash 复制代码
# 检查是否安装了ClickHouse包
rpm -qa | grep clickhouse
# 或者使用更精确的查询
rpm -q clickhouse-server clickhouse-client clickhouse-common-static

完全卸载所有ClickHouse包

bash 复制代码
# 查看已安装的ClickHouse包
rpm -qa | grep clickhouse

# 卸载所有ClickHouse相关包
sudo rpm -e clickhouse-server clickhouse-client clickhouse-common-static

# 或者强制卸载(忽略依赖)
sudo rpm -e --nodeps clickhouse-server clickhouse-client clickhouse-common-static

分步卸载

bash 复制代码
# 1. 停止服务
sudo systemctl stop clickhouse-server

# 2. 卸载包
sudo rpm -e clickhouse-server
sudo rpm -e clickhouse-client
sudo rpm -e clickhouse-common-static

# 3. 检查是否卸载完成
rpm -qa | grep clickhouse

3、安装

整体放到一个包里,例:/root/clickhouse

安装命令:

bash 复制代码
rpm -ivh /root/clickhouse/clickhouse-*.rpm

ClickHouse在安装过程中会提示你为默认用户设置密码

可以直接回车、也可以输入密码后回车

查看ClickHouse服务状态

bash 复制代码
# 检查服务是否已启动
sudo systemctl status clickhouse-server

检查进程

bash 复制代码
# 检查ClickHouse进程是否在运行
ps aux | grep clickhouse | grep -v grep

# 检查端口监听
netstat -tlnp | grep -E "(8123|9000)"
ss -tlnp | grep -E "(8123|9000)"

未启动就手动启动

bash 复制代码
# 启动ClickHouse服务
sudo systemctl start clickhouse-server
# 设置开机自启
sudo systemctl enable clickhouse-server
# 检查状态
sudo systemctl status clickhouse-server
# 重启服务
sudo systemctl restart clickhouse-server
# 重新加载配置
sudo systemctl reload clickhouse-server

4、设置密码

设置default用户密码
方案一 :首次安装可以设置
方案二 :使用SQL命令修改密码

当前无密码

bash 复制代码
# 连接到ClickHouse(如果当前无密码)
clickhouse-client
# 执行修改密码命令
ALTER USER default IDENTIFIED WITH sha256_password BY '新密码';
# 或者使用普通密码
ALTER USER default IDENTIFIED BY '新密码';
# 退出
exit;

当前有密码

bash 复制代码
# 如果当前有密码,先连接再修改
clickhouse-client --user default --password 旧密码
# 然后执行
ALTER USER default IDENTIFIED BY '新密码';

这里执行失败了(这里搞了半天没改好,修改default密码老是报错,所以提供了新建用户的方法,后续弄好了再添加上内容)

权限问题 ,default 用户没有 ALTER USER 权限,所以不能修改用户信息。

修改一下配置:

bash 复制代码
[root@localhost users.d]# sudo vi /etc/clickhouse-server/users.xml

取消掉下面的注释(启用ClickHouse的SQL访问控制管理功能)

允许通过SQL命令来管理用户、角色、权限等访问控制,而不是只能通过配置文件,默认值是0为只读模式。

bash 复制代码
<access_management>1</access_management>

创建新管理员用户

bash 复制代码
-- 创建全新的管理员用户
CREATE USER dba IDENTIFIED BY 'dba123';

-- 给所有权限
GRANT ALL ON *.* TO dba WITH GRANT OPTION;

-- 退出当前连接
exit;

然后用新用户连接:

bash 复制代码
clickhouse-client --user dba --password dba123

方案三:直接修改配置文件(最简单)

bash 复制代码
# 1. 停止服务
sudo systemctl stop clickhouse-server

# 2. 直接修改密码
sudo vim /etc/clickhouse-server/users.xml
bash 复制代码
# 3. 重启服务
sudo systemctl start clickhouse-server

# 4. 用新密码测试
clickhouse-client --user default --password 654321

5、允许远程访问

作用:允许ClickHouse监听所有网络接口(包括IPv4和IPv6)

修改前(默认,只能本地访问)-->修改后(允许远程访问)

bash 复制代码
# 修改命令
[root@localhost users.d]# sudo vi /etc/clickhouse-server/config.xml 
# 修改后重启
[root@localhost users.d]# sudo systemctl restart clickhouse-server

取消注释:

如果不修改,用DBeaver连接的时候会报下面的错

6、程序连接

使用的是dbeaver:https://dbeaver.io/download/


测试新建的dba也是可以的

如果没成功先看看防火墙端口开没开

bash 复制代码
[root@localhost users.d]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp0s3 enp0s8
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

[root@localhost users.d]# firewall-cmd --add-port=8123/tcp --permanent
success
# 重启防火墙
[root@localhost users.d]# firewall-cmd --reload
success
相关推荐
orion575 小时前
Missing Semester Class1:course overview and introduction of shell
linux
用户1204872216111 小时前
Linux驱动编译与加载
linux·嵌入式
用户8055336980317 小时前
Input 子系统架构:Core、Handler、Driver 三层是怎么协作的
linux·嵌入式
用户8055336980317 小时前
RK-Forge外设系列开篇 - 把板子从「能启动」变成「能用」:Ethernet/SPI/MMC 三个纯接线外设
linux·github·嵌入式
七歌杜金房1 天前
我终于又有了自己的 Linux 电脑
linux·debian·mac
tntxia2 天前
linux curl命令详解_curl详解
linux
扛枪的书生2 天前
Linux 网络管理器用法速查
linux
顺风尿一寸2 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode3 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫3 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux