背景介绍:

有三台CentOS7服务器安装了ClickHouse

HostName IP 安装程序 程序端口
centf8118.sharding1.db 192.168.81.18 clickhouse-server,clickhouse-client 9000
centf8119.sharding2.db 192.168.81.19 clickhouse-server,clickhouse-client 9000
centf8120.sharding3.db 192.168.81.20 clickhouse-server,clickhouse-client 9000

一:登录数据库

本地登录:clickhouse-client

[root@centf8118 format_schemas]# clickhouse-client
ClickHouse client version 20.6.4.44 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.6.4 revision 54436. centf8118.sharding1.db :) show databases; SHOW DATABASES ┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
│ system │
│ testdb │
└────────────────────────────────┘ 4 rows in set. Elapsed: 0.003 sec. centf8118.sharding1.db :) select now(); SELECT now() ┌───────────────now()─┐
│ 2020-08-26 15:11:22 │
└─────────────────────┘ 1 rows in set. Elapsed: 0.010 sec. centf8118.sharding1.db :)

  

远程登录:(用本机clickhouse-client连接远程clickhouse-server服务器)

clickhouse-client --host 192.168.81.20 --port 9000 --database default --user default --password ""

如果登录不上,telnet一下端口,看通不通。

telnet ping 192.168.81.20 9000

[root@centf8118 ~]# telnet 192.168.81.20 9000
Trying 192.168.81.20 ...
telnet: connect to address 192.168.81.20: Connection refused

如果telent不同,查看iptables有没有添加端口。(三台机器都添加,我这里是添加的都是IP和端口区间,按实际需求配置。)

-A INPUT -p tcp -m iprange --src-range 192.168.81.18-192.168.81.20 -m tcp --dport 9000:9200 -j ACCEPT

如果iptables都配置了9000端口还是不通。查看监听端口:

[root@centf8118 ~]# netstat -anltp|grep :9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 22710/clickhouse-se

如果是127.0.0.1:9000需要修改配置,放开远程访问。

vim /etc/clickhouse-server/config.xml

修改配置文件中的注释掉的<listen_host>0.0.0.0</listen_host>放出来。

修改配置后重启服务: server clickhouse-server restart

再次查看监听端口:

[root@centf8118 ~]# netstat -anltp|grep :9000
tcp 0 0 0.0.0.0:9000 0.0.0.0:* LISTEN 6060/clickhouse-ser

  

再尝试登录数据库:(安装后系统默认会创建一个登录账号default,密码为空字符串)

[root@centf8118 ~]# clickhouse-client --host 192.168.81.20 --port 9000 --database default --user default --password ""
ClickHouse client version 20.6.4.44 (official build).
Connecting to database default at 192.168.81.20:9000 as user default.
Connected to ClickHouse server version 20.6.4 revision 54436. centf8120.sharding3.db :) show databases; SHOW DATABASES ┌─name───────────────────────────┐
│ _temporary_and_external_tables │
│ default │
│ system │
│ testdb │
│ tutorial │
└────────────────────────────────┘ 5 rows in set. Elapsed: 0.004 sec. centf8120.sharding3.db :)

  

客户端登录,默认是一行一段完整的SQL,如果是多行的sql,就会一行行执行并报错。

clickhouse-client -m 可以支持多行SQL;

二:角色账号相关操作

官方文档:https://clickhouse.tech/docs/en/sql-reference/statements/create/role/

# 创建角色,账号

CREATE ROLE [IF NOT EXISTS | OR REPLACE] name
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...]
CREATE USER [IF NOT EXISTS | OR REPLACE] name [ON CLUSTER cluster_name]
[IDENTIFIED [WITH {NO_PASSWORD|PLAINTEXT_PASSWORD|SHA256_PASSWORD|SHA256_HASH|DOUBLE_SHA1_PASSWORD|DOUBLE_SHA1_HASH}] BY {'password'|'hash'}]
[HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]
[DEFAULT ROLE role [,...]]
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...]

  

Examples:

# 创建角色并赋予权限
CREATE ROLE accountant;
GRANT SELECT ON db.* TO accountant; # 给用户添加角色
GRANT accountant TO mira;
# 修改角色
SET ROLE accountant;
SELECT * FROM db.*;

  

CREATE USER mira HOST IP '127.0.0.1' IDENTIFIED WITH sha256_password BY 'qwerty'

CREATE USER john DEFAULT ROLE role1, role2

ALTER USER user DEFAULT ROLE ALL

ALTER USER john DEFAULT ROLE ALL EXCEPT role1, role2

  

# 查询角色,账号

# 修改角色,账号

ALTER ROLE [IF EXISTS] name [ON CLUSTER cluster_name]
[RENAME TO new_name]
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...]

  

ALTER USER [IF EXISTS] name [ON CLUSTER cluster_name]
[RENAME TO new_name]
[IDENTIFIED [WITH {PLAINTEXT_PASSWORD|SHA256_PASSWORD|DOUBLE_SHA1_PASSWORD}] BY {'password'|'hash'}]
[[ADD|DROP] HOST {LOCAL | NAME 'name' | REGEXP 'name_regexp' | IP 'address' | LIKE 'pattern'} [,...] | ANY | NONE]
[DEFAULT ROLE role [,...] | ALL | ALL EXCEPT role [,...] ]
[SETTINGS variable [= value] [MIN [=] min_value] [MAX [=] max_value] [READONLY|WRITABLE] | PROFILE 'profile_name'] [,...]

  

# 删除角色,账号

DROP ROLE [IF EXISTS] name [,...] [ON CLUSTER cluster_name]

DROP USER [IF EXISTS] name [,...] [ON CLUSTER cluster_name]

  

三:数据库相关操作

官方文档:https://clickhouse.tech/docs/en/sql-reference/statements/create/database/

# 创建数据库

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]

 

# 查询数据库

SHOW DATABASES [INTO OUTFILE filename] [FORMAT format]

  

# 删除数据库

DROP DATABASE [IF EXISTS] db [ON CLUSTER cluster]

  

四:表相关操作

# 创建表

# 新创建表
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2],
...
) ENGINE = engine

  

# 拷贝已存在的表结构
CREATE TABLE [IF NOT EXISTS] [db.]table_name AS [db2.]name2 [ENGINE = engine]

  

# 查询表

SHOW [TEMPORARY] TABLES [{FROM | IN} <db>] [LIKE '<pattern>' | WHERE expr] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

  

SELECT name FROM system.tables WHERE database = <db> [AND name LIKE <pattern>] [LIMIT <N>] [INTO OUTFILE <filename>] [FORMAT <format>]

  

# 删除表

DROP [TEMPORARY] TABLE [IF EXISTS] [db.]name [ON CLUSTER cluster]

  

【ClickHouse】2:clickhouse基本语法的更多相关文章

  1. ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计

    ClickHouse核心架构设计是怎么样的?ClickHouse核心架构模块分为两个部分:ClickHouse执行过程架构和ClickHouse数据存储架构,下面分别详细介绍. ClickHouse执 ...

  2. ClickHouse(07)ClickHouse数据库引擎解析

    目录 Atomic 建表语句 特性 Table UUID RENAME TABLES DROP/DETACH TABLES EXCHANGE TABLES ReplicatedMergeTree in ...

  3. ClickHouse(10)ClickHouse合并树MergeTree家族表引擎之ReplacingMergeTree详细解析

    目录 建表语法 数据处理策略 资料分享 参考文章 MergeTree拥有主键,但是它的主键却没有唯一键的约束.这意味着即便多行数据的主键相同,它们还是能够被正常写入.在某些使用场合,用户并不希望数据表 ...

  4. ClickHouse(11)ClickHouse合并树MergeTree家族表引擎之SummingMergeTree详细解析

    目录 建表语法 数据处理 汇总的通用规则 AggregateFunction 列中的汇总 嵌套结构数据的处理 资料分享 参考文章 SummingMergeTree引擎继承自MergeTree.区别在于 ...

  5. ClickHouse(12)ClickHouse合并树MergeTree家族表引擎之AggregatingMergeTree详细解析

    目录 建表语法 查询和插入数据 数据处理逻辑 ClickHouse相关资料分享 AggregatingMergeTree引擎继承自 MergeTree,并改变了数据片段的合并逻辑.ClickHouse ...

  6. ClickHouse(03)ClickHouse怎么安装和部署

    本文会介绍如何安装和部署ClickHouse,官方推荐的几种安装模式,以及安装之后如何启动,ClickHouse集群如何配置等. 简单来说,ClickHouse的搭建流程如下: 环境检查,环境依赖安装 ...

  7. ClickHouse(05)ClickHouse数据类型详解

    ClickHouse属于分析型数据库,ClickHouse提供了许多数据类型,它们可以划分为基础类型.复合类型和特殊类型.其中基础类型使ClickHouse具备了描述数据的基本能力,而另外两种类型则使 ...

  8. ClickHouse(13)ClickHouse合并树MergeTree家族表引擎之CollapsingMergeTree详细解析

    目录 建表 折叠 数据 算法 资料分享 参考文章 该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑.CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sig ...

  9. clickhouse 19.14.m.n简单测试

    ClickHouse is a column-oriented database management system (DBMS) for online analytical processing o ...

  10. ClickHouse学习系列之一【安装说明】

    背景 最近花了些时间看了下ClickHouse文档,发现它在OLAP方面表现很优异,而且相对也比较轻量和简单,所以准备入门了解下该数据库系统.按照习惯第一步先安装,本文对其用户权限管理方面进行梳理说明 ...

随机推荐

  1. 异构数据源同步之表结构同步 → 通过 jdbc 实现,没那么简单

    开心一刻 今天坐沙发上看电视,旁边的老婆拿着手机贴了过来 老婆:老公,这次出门旅游,机票我准备买了哈 我:嗯 老婆:你.我.你爸妈.我爸妈,一共六张票 老婆:这上面还有意外保险,要不要买? 我:都特么 ...

  2. 解决小程序uni-app echars层级过高问题

    使用 force-use-old-canvas="false" 使用微信小程序的cover-view会有很多问题,并且不一定生效,只需要在canvas的标签内添加 force-us ...

  3. Chrome 浏览器插件 Manifest.json V3 中权限(Permissions)字段解析

    一.权限(Permissions) 再使用拓展程序的 API 时,大多数的时候,需要在 manifest.json 文件中声明 permissions 字段. 一.权限类型 在 V3 版本中可以声明以 ...

  4. [渗透测试] HTB_Surveillance WriteUp [上]

     靶机:Surveillance (from Hack The Box)  工具:Kali Linux  目标:拿到user和root的一串32位hex字符串 ## 配置hosts 环境启动后,要设置 ...

  5. C# 使用 NPOI 导出excel 单击单元格背景变黑色的解决办法

    需要手动指定单元格的背景色为一种颜色, 特别注意,我在使用 var color=new XSSFColor(new color...)创建的颜色,即使设置成其他颜色,查看样式属性中,发现color.i ...

  6. 你好Avalonia框架

    https://docs.avaloniaui.net/docs/getting-started/ 起因公司事业部是做移动等营业厅办理相关业务,无纸化系统的.简单的说就是以前去营业厅办理业务都需要各种 ...

  7. grafan+cadvisor+prometheus监控docker

    grafan+cadvisor+prometheus监控docker: 运行cadvisor: docker run \ --volume=/:/rootfs:ro \ --volume=/var/r ...

  8. Qt-FFmpeg开发-视频播放(4)

    音视频/FFmpeg #Qt Qt-FFmpeg开发-视频播放[软解码 + OpenGL显示YUV420P图像] 目录 音视频/FFmpeg #Qt Qt-FFmpeg开发-视频播放[软解码 + Op ...

  9. Visual Studio编程效率提升技巧集(提高.NET编程效率)

    前言 本文大姚将为你介绍一些Visual Studio的使用技巧和建议,旨在帮助.NET开发者更加高效地利用Visual Studio进行编程工作.无论你是.NET初学者还是经验丰富的.NET开发者, ...

  10. 在 TypeScript 中,extends

    extends 是一个关键字,用于指定类型参数的约束.它在类型参数的声明中使用,以确保类型参数满足特定的条件. 具体来说,extends 后面可以跟随一个类型,表示类型参数必须是该类型的子类型.在泛型 ...