clickhouse离线安装及用户权限修改

1、前言:

文章类型数据转载总结,原文错漏地方进行了修正,只保留了本人实践过后正确的部分,并且安装方式未采用原文的安装,使用的时离线安装的方式

由于公司内网服务器环境数据重要程度高,为防止泄露和恶意攻击,不能联网所以不能在线方式安装。这里记录一下通过RPM包离线安装Clickhouse的过程。

2、下载RPM包
https://repo.yandex.ru/clickhouse/rpm/stable/x86_64/

下载三个RPM包:

clickhouse-client-20.3.9.70-2.noarch.rpm
clickhouse-common-static-20.3.9.70-2.x86_64.rpm
clickhouse-server-20.3.9.70-2.noarch.rpm

3、安装RPM
(1)上传到服务器

[root@elastic1 app]# ll
total 135016
-rw-r--r-- 1 root    root       134254 Sep 11 13:33 clickhouse-client-20.3.9.70-2.noarch.rpm
-rw-r--r-- 1 root    root    116924361 Sep 11 13:37 clickhouse-common-static-20.3.9.70-2.x86_64.rpm
-rw-r--r-- 1 root    root       155513 Sep 11 13:33 clickhouse-server-20.3.9.70-2.noarch.rpm
drwxr-xr-x 9 root    root         4096 Jun 28  2019 nacos
-rw-rw-r-- 1 elastic elastic  21035126 Jun 28  2019 sentinel-dashboard-1.6.2.jar

(2)安装

[root@elastic1 app]# rpm -ivh clickhouse-common-static-20.3.9.70-2.x86_64.rpm 
warning: clickhouse-common-static-20.3.9.70-2.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID e0c56bd4: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:clickhouse-common-static-20.3.9.7################################# [100%]
[root@elastic1 app]# rpm -ivh clickhouse-server-20.3.9.70-2.noarch.rpm 
warning: clickhouse-server-20.3.9.70-2.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID e0c56bd4: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:clickhouse-server-20.3.9.70-2    ################################# [100%]
Created symlink from /etc/systemd/system/multi-user.target.wants/clickhouse-server.service to /etc/systemd/system/clickhouse-server.service.
Path to data directory in /etc/clickhouse-server/config.xml: /var/lib/clickhouse/
[root@elastic1 app]# rpm -ivh clickhouse-client-20.3.9.70-2.noarch.rpm 
warning: clickhouse-client-20.3.9.70-2.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID e0c56bd4: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:clickhouse-client-20.3.9.70-2    ################################# [100%]

(3)开放远程连接服务服务
新增一行,默认是注释的,让本地服务可以远程连接远程部署的Clickhouse服务,如下所示:

[root@elastic1 app]# vi /etc/clickhouse-server/config.xml

在这里插入图片描述
如果不添加上面的配置,远程连接,报下面的错误,如下所示:

 Unexpected driver error occurred while connecting to the database
   ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 210, host: 192.168.110.133, port: 8123; Connect to 192.168.110.133:8123 [/192.168.110.133] failed: Connection refused: connect
   ru.yandex.clickhouse.except.ClickHouseException: ClickHouse exception, code: 210, host: 192.168.110.133, port: 8123; Connect to 192.168.110.133:8123 [/192.168.110.133] failed: Connection refused: connect
     ClickHouse exception, code: 210, host: 192.168.110.133, port: 8123; Connect to 192.168.110.133:8123 [/192.168.110.133] failed: Connection refused: connect
     ClickHouse exception, code: 210, host: 192.168.110.133, port: 8123; Connect to 192.168.110.133:8123 [/192.168.110.133] failed: Connection refused: connect
       Connect to 192.168.110.133:8123 [/192.168.110.133] failed: Connection refused: connect
       Connect to 192.168.110.133:8123 [/192.168.110.133] failed: Connection refused: connect
         Connection refused: connect
         Connection refused: connect

(4)启动服务

[root@elastic1 app]# systemctl start clickhouse-server.service 

(5)测试客服端
Clickhouse默认是不需要密码进行登陆的,系统默认的登录账号是default,在我们登录到clickhouse的时候可以看到,系统会告诉我们是以哪个用户账号进行登录的。

[root@elastic1 app]# clickhouse-client 
ClickHouse client version 20.3.9.70 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.3.9 revision 54433.

elastic1 :) show databases;

SHOW DATABASES

┌─name────┐
│ default │
│ system  │
└─────────┘

2 rows in set. Elapsed: 0.004 sec. 

elastic1 :) exit
Bye.
[root@elastic1 app]#

如上所示,使用clickhouse-client登录到数据库,

系统打印的第一行:ClickHouse client version 21.1.2.15 (official build) 登录客户端的的版本;

第二行:Connecting to localhost:9000 as user default 数据库运行的端口9000以及登录用的用户default;

第三行:Connected to ClickHouse server version 21.1.2 revision 54443. 数据库服务的版本

(6)修改数据库配置,需要使用密码才能进行登录

clickhouse的主要配置文件在 /etc/clickhouse-server目录下

root@Lenovo:~# cd /etc/clickhouse-server
root@Lenovo:/etc/clickhouse-server# ls
config.d  config.xml  users.d  users.xml
root@Lenovo:/etc/clickhouse-server#

在该目录下,我们可以看到config.xml以及users.xml两个配置文件

1、config.xml是系统相关的配置项,包括系统的启动端口、配置文件存储位置等等

2、users.xml 是用户相关的配置项,包括了系统参数的设定、用户的定义、权限以及熔断机制等等

因为我们要修改用户登录项,所以我们需要修改users.xml。

(1)、明文密码:直接通过password标签定义

例如:

<password>123</password>    
--注意:当password标签为空时,代表免密码登录。

(2)、SHA256加密:SHA256加密算法的密码,需要使用<password_sha256_hex>标签定义密码

例如:

<password_sha256_hex>a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3</password_sha256_hex>
可以使用如下命令,生成sha256加密字符串
root@Lenovo:~# echo -n 123 | openssl dgst -sha256
(stdin)= a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3

密码设定完成之后,直接使用clickhouse-client连接clickhouse-server客户端就不能成功了,会提示密码错误或用户不存在

此时,我们应该指定登录密码

clickhouse-client -u default --password 123
 
//-u 为指定使用哪个账号进行登录,如不指定。默认使用default

** ( 6.1 ) 创建一个新账号与设置角色权限**

在/etc/clickhouse-server 目录下,编辑users.xml,其中的标签定义用户的相关配置信息,其结构如下:

<users>
    <username>                      <!--用户登录名-->
        <password>123</password>    <!--用户登录密码-->
        <networks>
           <ip>::/0</ip>
        </networks>   <!--允许登录的网络地址-->
        <profile>default</profile>  <!--用户使用的profile配置-->
        <quota>default</quota>      <!--用户能够使用的资源限额/熔断机制-->
    </username>
<users>

在users.xml中添加了如下配置之后,即可完成一个新用户的配置
( 6.2 )标签定义了用户单位时间内的资源限制,也可以称为是一种熔断机制。
当用户的资源使用情况达到配置阈值时,就会触发熔断机制(熔断是限制资源被过度使用的一种保护机制),正在进行的操作就会被自动切断。

标签的详细配置在users.xml文件中,每一个子标签代表一种quota配置。同样的,clickhouse也给出了默认的参考配置

<quota>     
    <default>
       <interval>
            <duration>3600</duration>
            <queries>0</queries>
            <errors>0</errors>
            <result_rows>0</result_rows>
            <read_rows>0</read_rows>
            <execution_time>0</execution_time>
       </interval>
    <default>
</quota>

1、duration

​ duration表示累计的时间周期,单位为秒,达到该时间周期后,清除所有收集的值,接下来的周期,将重新开始计算,当服务重启时,也会清除所有的值,重新开始新的周期。

2、queris

queris表示在该周期内,允许执行的查询次数,0为不限制。

3、errors

errors表示在该周期内,允许引发异常的查询次数,0为不限制。

4、result_rows

result_rows表示在周期内,允许查询返回的结果行数,0为不限制。

5、read_rows设置

​ read_rows表示在周期内,允许远程节点读取的数据行数,0为不限制。

6、execution_time设置

execution_time表示允许查询的总执行时间(又叫wall time),单位为秒,0为不限制。

https://blog.csdn.net/qq_38830964/article/details/114012700
https://cloud.tencent.com/developer/article/1697455
有收获?希望烙铁们来个三连击,让更多的同学看到这篇文章

1、烙铁们,关注我看完保证有所收获,不信你打我。

2、点个赞呗,可以让更多的人看到这篇文章,后续还会有很哇塞的产出。

本文章仅供学习及个人复习使用,如需转载请标明转载出处,如有错漏欢迎指出
务必注明来源(注明: 来源:csdn , 作者:-马什么梅-)

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一马什么梅一

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值