Windows下安装ClickHouse(失败实践)

1,187 阅读3分钟

一、所需工具

1、Windows10专业版或企业版(64位)

2、Docker Desktop

3、DBeaver

二、步骤

1、开启虚拟化,开机进入BIOS 开启虚拟化选项,不同主板、笔记本操作方式各异。如我使用的华硕主板按下开机键后不断按下F2或Delete键可进入BIOS.

2、安装Docker Desktop

下载链接 desktop.docker.com/win/stable/… 安装完毕后进入cmd或powersheel 输入

docker --version

如下所示

image.png

3、进入Docker Desktop

首次进入提示 “WSL 2 installation is incomplete”且点设置界面一直转圈

image.png 去官网下载最新的wsl安装包 wslstorestorage.blob.core.windows.net/wslblob/wsl… 安装后进入Docker Desktop不再提示,但是弹出错误 “Failed to set version to docker-desktop: exit code: -1”

image.png 命令行键入 wsl 提示

image.png

由于程序和功能里已添加子系统

image.png

那根据提示尝试手动安装分发版。

wsl --install -d Ubuntu

image.png

安装完毕后进入Docker Desktop仍弹出相同错误“Failed to set version to docker-desktop: exit code: -1” 根据网上经验贴键入命令

netsh winsock reset

image.png

执行后重启电脑 重启后启动正常 打开设置-Docker Engine-配置镜像

{
  "debug": false,
  "experimental": false,
  "features": {
    "buildkit": true
  },
  "insecure-registries": [],
  "registry-mirrors": [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

image.png

image.png

4、安装ClickHouse

拉取镜像

docker pull yandex/clickhouse-server

image.png

docker pull yandex/clickhouse-client

image.png

运行临时容器 temp-clickhouse-server

docker run --rm -d --name=temp-clickhouse-server yandex/clickhouse-server

image.png

config配置和users配置映射Windows硬盘目录

docker cp temp-clickhouse-server:/etc/clickhouse-server/config.xml D:/clickhouse/conf/config.xml
docker cp temp-clickhouse-server:/etc/clickhouse-server/users.xml D:/clickhouse/conf/users.xml

image.png 执行完毕在硬盘对应目录下会生成对应的配置文件

image.png

创建账号

进行临时容器

docker exec -it temp-clickhouse-server /bin/bash

image.png

容器内执行命令,生成自定义账号的SHA256 如下我自定义账号:fpy 密码:fpy

PASSWORD=$(base64 < /dev/urandom | head -c8); echo "fpy"; echo -n "fpy" | sha256sum | tr -d '-'

image.png

修改users.xml文件配置为自定义账号与对应的SHA256

<fpy>			
    <password_sha256_hex>51713e35c5db91cd216459cdb3d359ddd018f827339fe06f560ad5dca5305223</password_sha256_hex>
    <networks incl="networks" replace="replace">
       <ip>::/0</ip>
    </networks>
    <profile>fpy</profile>
    <quota>fpy</quota>
</fpy>

image.png

修改config.xml文件配置监听

<listen_host>0.0.0.0</listen_host>

image.png

返回到命令行销毁临时容器

docker stop temp-clickhouse-server

image.png

创建目录:D:/clickhouse/data 和 D:/clickhouse/log

image.png

映射端口 8123、9000、9009,数据、配置、日志映射到Windows硬盘 注意不要修改以上端口,以上端口是config.xml文件里的默认配置,如自定义应同步修改config.xml文件里的配置

docker run -d --name=clickhouse-server -p 8123:8123 -p 9000:9000 -p 9009:9009 --ulimit nofile=262144:262144 --volume D:/clickhouse/data:/var/lib/clickhouse:rw --volume D:/clickhouse/conf:/etc/clickhouse-server:rw --volume D:/clickhouse/log:/var/log/clickhouse-server:rw yandex/clickhouse-server

image.png

Docker Desktop 显示如下

image.png

5、安装DBeaver连接ClickHouse

官网下载链接 dbeaver.io/files/dbeav…

我是直接在微软商店里下载

image.png

新建数据库连接 image.png

连接失败。clickhouse 启动后日志记录有两种错误:1、code 1001: permission denied 2、code 84: file already exists。各种经验贴借鉴尝试后无效,决定转用linux虚拟机安装。