来玩Docker啦
曾经某一刻, 我突然觉得生命很空旷, 于是对她说: 得了吧, 赶紧干活, 干完睡觉 !!
今天玩点不一样的, Docker部署CK, 然后创建管理员用户
1. 拉取镜像
用 Docker 部署 CK 默认用户和密码
在使用 Docker 部署 CK (ClickHouse) 数据库时,为了提高安全性,我们通常需要设置默认用户和密码。这样可以防止未授权访问和保护数据库的重要信息。本篇文章将介绍如何在 Docker 中部署 CK 并设置默认用户和密码。
CK 简介
CK 是一个开源的分布式列式数据库管理系统,专为大型数据集设计。它支持高性能的数据处理和查询,并在大数据领域广泛应用。
Docker 部署 CK
首先,我们需要在本地环境安装 Docker。然后,我们可以使用以下命令从 Docker Hub 上下载 CK 镜像并运行容器:
# 拉取docker的ck镜像
docker pull yandex/clickhouse-server
2. 运行镜像
# 先运行下docker镜像, 用于复制里面的运行配置文件挂在到宿主机
docker run --privileged=true -d --name ck-server -p 8123:8123 yandex/clickhouse-server
# 从容器中拷贝文件到主机中
docker cp ck-server:/etc/clickhouse-server /home
# 授权挂载的文件
chmod 777 /home/clickhouse-server
# 然后删掉原来的docker运行容器
docker rm -f ck-server
这里不能直接使用挂在的文件运行, 会显示无法创建管理员用户, 因此我们需要在挂在配置里面添加授权信息
宿主机路径: /home/clickhouse-server/users.xml
# 修改模式进入
vi /home/clickhouse-server/users.xml
# (按一些键盘上的I键(注意, 这是字母那个I, 不是1更不是L), 代表insert模式)
# 找到对应的行一般在第二页(看到<password></passwrod>就可以停下来了)
# 这里需要修改下ck运行文件信息, 在<password></passwrod>下面一行添加
<access_management>1</access_management>
# 然后按一下esc, 之后输入:wq, 然后就保存退出来了, 其他东西别改!小心操作
看效果
# 挂载文件配置好了后, 直接运行起来, 这之所以是两个端口是因为我宿主机跑了另外一个应用端口9000给占用了
docker run --privileged=true -d --name ck-server -p 9001:9000 -p 8123:8123 -v /home/clickhouse-server:/etc/clickhouse-server yandex/clickhouse-server
# 创建容器运行映射目录
docker exec -it ck-server bash
# 容器内使用clickhouse client命令连接ck
clickhouse client
# 创建管理员用户
CREATE USER username IDENTIFIED BY 'password';
3. 这时候就可以外部连接了
好了, 现在可以用springboot去集成这玩意了, 这个因为是列式数据库, 因此索引效率很高, 相对ES来讲, 不吃那么多内存, 很棒棒!!
4. 总结
注意几个点:
创建不了管理员用户的因素主要有:
- 没修改挂载的 /home/clickhouse-server/users.xml
- 没有对 /home/clickhouse-server 授权 (chmod 777 处理)
这里一般会报什么 ACCESS DENY, 然后什么权限 101 的, 基本就这两件事