clickhouse 安装
clickhouse中文文档地址:
https://clickhouse.com/docs/zh/getting-started/tutorial/
包下载地址:
https://packages.clickhouse.com/tgz/stable/
1、centos安装部署
采用tgz的方式安装
https://clickhouse.com/docs/zh/getting-started/install/
tgz包下载地址:
https://packages.clickhouse.com/tgz/
https://github.com/ClickHouse/ClickHouse/releases
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启动失败)
sudo chown -R clickhouse:clickhouse /data/clickhouse
后期修改方法:
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