1、先准备好三个文件夹,data、conf、log:
mkdir -p /usr/local/clickhouse/data /usr/local/clickhouse/conf /usr/local/clickhouse/log [root@tcosmo-szlstb03 clickhouse]# pwd /usr/local/clickhouse [root@tcosmo-szlstb03 clickhouse]# ll total 0 drwxr-xr-x 2 root root 6 Mar 28 12:03 conf drwxr-xr-x 2 root root 6 Mar 28 12:03 data drwxr-xr-x 2 root root 6 Mar 28 12:03 log
2、运行一个临时容器(拷贝其中的配置文件):
docker run -d --rm --name=ck-temp yandex/clickhouse-server
3、将容器中的两个核心配置文件拷贝到宿主机提前准备好的文件夹:
docker cp ck-temp:/etc/clickhouse-server/users.xml /usr/local/clickhouse/conf/users.xml docker cp ck-temp:/etc/clickhouse-server/config.xml /usr/local/clickhouse/conf/config.xml [root@tcosmo-szlstb03 clickhouse]# ls conf/ config.xml users.xml
4、如果要设备default账号的密码:
执行以下命令,生成SHA256密码:
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "123456"; echo -n "123456" | sha256sum | tr -d '-' # 输出 123456 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
修改users.xml配置中对应的部分(支持明文密码和加密密码):
<users> <!-- If user name was not specified, 'default' user is used. --> <default> <!-- <password>123456</password> --> <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex> <networks> <ip>::/0</ip> </networks> <!-- Settings profile for user. --> <profile>default</profile> <!-- Quota for user. --> <quota>default</quota> <!-- User can create other users and grant rights to them. --> <!-- <access_management>1</access_management> --> </default> </users>
5、关闭之前的临时容器:
docker rm -f ck-temp
6、启动正式容器:
docker run -d --name clickhouse-server \ -p 8123:8123 \ -p 9009:9009 \ -p 9090:9000 \ --ulimit nofile=262144:262144 \ --volume=/usr/local/clickhouse/data:/var/lib/clickhouse \ --volume=/usr/local/clickhouse/log:/var/log/clickhouse-server \ --volume=/usr/local/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \ --volume=/usr/local/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \ --restart=always \ yandex/clickhouse-server
7、现在我们就可以使用DBeaver进行连接啦: