Far*_*iri 2 database clickhouse
我最近不得不将 clickhouse 添加到我们的技术堆栈中,但不幸的是我没有找到任何适合我的需求的好的、简单的和快速的教程,经过一些尝试和错误后我可以自己完成。为了帮助其他人,我决定分享我的经验。
那么如何 使用docker部署和配置远程ClickHouse数据库实例呢?
这是使用 docker 在远程服务器上部署ClickHouse的设置指南。
您必须在远程系统上预安装 docker。
运行以下命令:
$ docker run -d --name some-clickhouse-server -p 8123:8123 --ulimit nofile=262144:262144 --volume=$HOME/some_clickhouse_database:/var/lib/clickhouse yandex/clickhouse-server
Run Code Online (Sandbox Code Playgroud)
ClickHouse 服务器使用端口8123作为默认端口,但您可以使用任何其他开放端口,但请记住将该端口公开到外部网络。服务器附带一个没有密码的默认用户。
在服务器中运行以下命令,以默认用户连接clickhouse服务器。
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server
Run Code Online (Sandbox Code Playgroud)
打开clickhouse服务器docker容器
$ docker exec -it some-clickhouse-server bash
Run Code Online (Sandbox Code Playgroud)
default
。在clickhouse服务器docker容器中:
$ cd etc/clickhouse-server
在user.xml文件中注释掉以下行以启用访问控制:
<access_management>1</access_management>
Run Code Online (Sandbox Code Playgroud)
请注意,此操作是不安全的,完成工作后,您应该将访问控制更改为:
<access_management>0</access_management>
Run Code Online (Sandbox Code Playgroud)
在etc/clickhouse-server/config.xml
注释掉<listen_host>::</listen_host>
允许远程连接。您应该看到该端口在系统网络中已打开:
root@myvm:~# lsof -i :8123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1141768 root 4u IPv6 53989091 0t0 TCP *:8123 (LISTEN)
Run Code Online (Sandbox Code Playgroud)
在这一部分中,我们创建一个简单的数据库和用户。然后我们将数据库的权限授予该用户。
有两种类型的同步,它们可以相互补充:
CREATE USER IF NOT EXISTS user1 IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'pass1'
Run Code Online (Sandbox Code Playgroud)
您可以使用命令检查用户SHOW USERS
。
CREATE DATABASE IF NOT EXISTS db1
Run Code Online (Sandbox Code Playgroud)
您可以使用命令检查数据库SHOW DATABASES
。
您可以向用户授予有限权限或所有权限。
GRANT ALL PRIVILEGES ON db1.* TO user1
Run Code Online (Sandbox Code Playgroud)
现在我们可以使用创建的帐户连接到服务器。
$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server -u user1 --password pass1
Run Code Online (Sandbox Code Playgroud)
确保用户拥有所有权限并有权访问数据库:
:) SHOW GRANTS
:) SHOW DATABASES
Run Code Online (Sandbox Code Playgroud)
Clickhouse 支持SQL。
创建表:
:) USE db1
Run Code Online (Sandbox Code Playgroud)
:) CREATE TABLE names (
id UInt64,
name String,
created DateTime
) ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id;
Run Code Online (Sandbox Code Playgroud)
:) SHOW TABLES
Run Code Online (Sandbox Code Playgroud)
你有它。您可以使用 clickhouse-client 和您的用户/密码从其他网络连接到数据库。