gpt4 book ai didi

database - 如何使用 docker 部署和配置远程 clickhouse 数据库实例

转载 作者:行者123 更新时间:2023-12-05 09:07:24 25 4
gpt4 key购买 nike

我最近不得不将 clickhouse 添加到我们的技术栈中,但不幸的是我没有找到任何好的、简单和快速的教程来满足我的需要,经过一些试验和错误后我可以设法自己完成。为了帮助他人,我决定分享我的经验。

那么如何使用docker部署配置远程ClickHouse DB实例呢?

最佳答案

ClickHouse 设置

这是部署的设置指南ClickHouse 在远程服务器上使用 docker。

安装

您必须在远程系统上预装 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

ClickHouse 服务器使用端口 8123 作为默认端口,但您可以使用任何其他开放端口,但请记住将端口暴露给外部网络。服务器带有默认用户,没有密码。

客户端

在服务器中运行以下命令以默认用户连接到clickhouse服务器。

$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server

配置

打开clickhouse server docker容器

$ docker exec -it some-clickhouse-server bash

1。为 default 启用 SQL 驱动的访问控制和帐户管理用户。

在 clickhouse 服务器 docker 容器中:

$ cd etc/clickhouse-server

user.xml 文件中注释掉以下行以启用访问控制:

<access_management>1</access_management>

注意这个操作是不安全的,完成你的工作后,你应该将访问控制更改为:

<access_management>0</access_management>

2。收听其他网络:

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)

用用户创建数据库

在这部分我们创建一个简单的数据库和一个用户。然后我们授予数据库的权限给该用户。

有两种类型的同步,它们可以相互补充:

1。 Creating一个用户

CREATE USER IF NOT EXISTS user1 IDENTIFIED WITH PLAINTEXT_PASSWORD BY 'pass1'

您可以使用 SHOW USERS 检查用户命令。

2。 Creating一个数据库

CREATE DATABASE IF NOT EXISTS db1

您可以使用 SHOW DATABASES 检查数据库命令。

3。 Grant用户的数据库权限

您可以向用户授予有限权限或所有权限。

GRANT ALL PRIVILEGES ON db1.* TO user1

4。将新用户连接到数据库

现在我们可以使用创建的帐户连接到服务器。

$ docker run -it --rm --link some-clickhouse-server:clickhouse-server yandex/clickhouse-client --host clickhouse-server -u user1 --password pass1 

确保用户拥有所有权限并有权访问数据库:

:) SHOW GRANTS
:) SHOW DATABASES

创建示例表

Clickhouse 支持 SQL .

创建表:

:) USE db1
:) CREATE TABLE names (
id UInt64,
name String,
created DateTime
) ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id;
:) SHOW TABLES

给你。您可以使用 clickhouse-client 和您的用户/密码从其他网络连接到数据库。

关于database - 如何使用 docker 部署和配置远程 clickhouse 数据库实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64888752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com