clickhouse 安装

clickhouse中文文档地址:
https://clickhouse.com/docs/zh/getting-started/tutorial/

1、centos安装部署

采用tgz的方式安装

官网上安装部署有比较详细的说明,具体文档地址如下,支持deb、rpm、tgz、docker等安装部署方式
https://clickhouse.com/docs/zh/getting-started/install/

tgz包下载地址:
https://packages.clickhouse.com/tgz/
https://github.com/ClickHouse/ClickHouse/releases

下载的版本是22.3.2.2,以此版本为例,tgz包上传到同一个目录下,执行以下操作
tar -xzvf "clickhouse-common-static-22.3.2.2.tgz"
sudo "clickhouse-common-static-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-common-static-dbg-22.3.2.2.tgz"
sudo "clickhouse-common-static-dbg-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-server-22.3.2.2.tgz"
sudo "clickhouse-server-22.3.2.2/install/doinst.sh"

tar -xzvf "clickhouse-client-22.3.2.2.tgz"
sudo "clickhouse-client-22.3.2.2/install/doinst.sh"

 

2、启动server

关于tgz安装的时候这条命令

sudo /etc/init.d/clickhouse-server start
或:
sudo -u clickhouse clickhouse-server --config-file=/etc/clickhouse-server/config.xml
下面这个会有执行日志,如果遇到权限问题,执行相关的权限命令:
如:sudo chown -R clickhouse:clickhouse /usr/lib

查看是否启动成功

ps -ef|grep clickhouse

命令行登录(默认没有密码)

$ clickhouse-client

3、修改密码

vim /etc/clickhouse-server/users.xml

  注:只读文件,退出时命令: wq!

重启服务:
systemctl restart clickhouse-server 密码登录: clickhouse-client --password xxxx

登录:

默认端口 9000

4、远程访问

vim /etc/clickhouse-server/config.xml

之后重启clickhouse-server

systemctl restart clickhouse-server
防火墙:
开放 22端口:
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=8123/tcp --permanent
重新载入一下: firewall-cmd --reload

5、修改default 用户权限:

修改default 为管理员用户:users.xml   (/etc/clickhouse-server/users.xml)下面:  vim /etc/clickhouse-server/users.xml 

 

里面 将<access_management>1</access_management>注释去掉,改为管理员权限,重启

 

systemctl restart clickhouse-server

6、修改数据目录

配置文件 

vim /etc/clickhouse-server/config.xml

 

 

 后期修改方法:

clickhouse默认数据目录在 /var/lib/clickhouse, 一般分区空间有限,需要修改。
只要停止数据库之后移走该目录再软连接回原地址,即可不修改config.xml实现对数据目录的修改。

#先停库
sudo clickhouse stop
sudo mkdir -p /data01/ch/
#权限一定要修改否则没权限就启动不了
sudo chown -R clickhouse:clickhouse /data01/ch
sudo mv /var/lib/clickhouse /data01/ch/
#建立软连接
sudo ln -s /data01/ch/clickhouse /var/lib/clickhouse
sudo chown -R clickhouse:clickhouse /var/lib/clickhouse
sudo ls -l /var/lib/clickhouse
#启动
sudo clickhouse start

如果启动不了,一般都是目录的权限问题,可以根据具体的报错日志来判断是哪个目录。

重启生效
systemctl restart clickhouse-server

7、创建用户和角色

创建角色及用户

登录client:

clickhouse-client -m --user test--password xxxxx(密码)

创建角色

创建一个角色acaidb_rw, 该角色针对数据库acaidb具备读写权限。
CREATE ROLE acaidb_rw;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON acaidb.* TO acaidb_rw;
如果让一个角色只允许select,不允许修改数据,下面的语句就可以。
CREATE ROLE acaidb_read;
GRANT SELECT ON acaidb.* TO acaidb_read;
创建普通账户并赋权
我们分别创建账户reader和writer,然后把只读角色ro分配给reader,把读写角色分配给writer。这样,reader拥有只读权限,writer拥有读写权限。 新建一个数据库用户acai,并设置密码(将下文的<你的密码>替换)。并给用户acai赋予读写权限角色acaidb_rw 。
CREATE USER IF NOT EXISTS acai IDENTIFIED WITH sha256_password BY '<你的密码>';
如:
CREATE USER IF NOT EXISTS testuser IDENTIFIED WITH PLAINTEXT_PASSWORD BY '12222'
GRANT acaidb_rw TO acai;
使用下列命令访问clickhouse数据,show databases得到acaidb,说明我们成功了。因为acai用户只能访问acaidb。
# clickhouse-client -m -u acai --password '<你的密码>' --query 'show databases;'

创建记录如下:

CREATE ROLE ehrdsrw;
CREATE USER IF NOT EXISTS ehrds IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'u_2024'
GRANT ehrdsrw TO ehrds ;
create database if not exists ehrdsdb;
GRANT SELECT, INSERT, ALTER UPDATE, ALTER DELETE ON ehrdsdb.* TO ehrdsrw;
GRANT ALL ON ehrdsdb.* TO ehrds;

  8、web浏览器访问:

 

 前面两步做完后,可以通过 ip:8123/play 访问到clickhouse界面,然后再password处输入密码即可

1、密码问题解决:

users.xml 里面的password 不生效,删除配置文件   rm -f /etc/clickhouse-server/users.d/default-password.xml    重启

2、更全面的部署方式:

 https://zhuanlan.zhihu.com/p/522431332

 

 

 

 

 

posted @ 2022-09-15 17:32  leolzi  阅读(598)  评论(0编辑  收藏  举报