由于macos不支持直接安装clickhouse,只能通过docker容器本地安装clickhouse。
一、安装Docker两种安装方式:参考 MacOS Docker 安装 | 菜鸟教程
二、Docker镜像源配置新版Docker的镜像配置为Preferences -> Docker Engine,在文本框中加入镜像地址:
"registry-mirrors": [
"https://6kx4zyno.mirror.aliyuncs.com"
]
如图:
终端输入指令 $ docker pull yandex/clickhouse-client
四、docker下载clickhouse服务端终端输入指令 $ docker pull yandex/clickhouse-server
五、启动Clickhouse执行 $ docker network create ck_net ,创建用于clickhouse的网络给docker用
执行 $ docker network ls ,查看网络
可以看到 ck-net的网络已经创建成功
接下来运行clickhouse-server容器
$ docker run -d --name ck-server --network=ck_net --ulimit nofile=262144:262144 --volume=/Users/woxingwosu0100/documents/clickhouse/some_clickhouse_database:/var/lib/clickhouse yandex/clickhouse-server
查看服务 $ docker ps
进入到这个容器中 $ docker exec -it ck-server /bin/bash
然后执行 $ clickhouse-client
进入容器成功,再执行 :) show databases; 即可查看数据库
执行 :) CREATE TABLE default.user_table(id UInt16, name String, age UInt16 ) ENGINE = TinyLog(); 创建数据表
执行 :) SELECt * FROM default.user_table; 查询表数据
关闭容器:执行 $ docker stop 后面加上容器ID
之后再启动这个容器的时候,执行$ docker start 加容器的ID 就可以了
如果想删除该容器,可执行 $ docker container rm 加容器的ID 就可以了
六、宿主机连接docker中的clickhousedocker创建的clickhouse由于默认配置原因无法被宿主机直接访问,所以需要修改clickhouse的配置文件
配置 config.xml
修改配置有两种方式:
- 不挂载配置文件, 每次进入容器修改配置, 比较拉跨 (注意 这个镜像基于不完整的ubuntu, 需要手动装一下vim编辑器,$ apt-get update $ apt-get install vim -y)
- 先不挂载配置文件启动一个容器,执行 $ docker cp clickhouse-server:/etc/clickhouse-server/ /Users/woxingwosu0100/clickhouse/etc 将容器中的 /etc/clickhouse-server下的内容复制到宿主机, 修改配置文件/etc/clickhouse-server/config.xml 中 65行 注释去掉
:: ,然后再基于这个复制过来的文件挂载配置文件也可以解决,执行 $ docker run -d --name ck-server --network=ck_net --ulimit nofile=262144:262144 -p 8123:8123 -p 9000:9000 -p 9009:9009 --volume=/Users/woxingwosu0100/documents/clickhouse/some_clickhouse_database:/var/lib/clickhouse -v /Users/woxingwosu0100/documents/clickhouse/etc/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server



