我对clickhouse的设置是通过docker(https://hub.docker.com/r/yandex/clickhouse-server/~/dockerfile/)。目前,我在将数据目录(/ var / lib / clickhouse)从容器挂载到主机时遇到了一些问题,因为我想将数据保存在容器运行时之外。
由于docker进程负责在主机上创建目录(/ var / lib / clickhouse的这些目录在运行带有-v标志的docker之前不存在),我应该使用什么权限和/或目录结构在我的主机实例上提供?
我碰到了像Application: Access to file denied: /var/lib/clickhouse/data
这样的东西。我的显式文件安装是:/var/lib/clickhouse
和/var/lib/clickhouse/tmp
,如配置文件中所述。但由于clickhouse服务器进程似乎创建了更多目录,因此在尝试创建更多进程时,docker进程被“拒绝”。
我可以显式挂载/ data等,但这会产生一个不在配置范围内的假设。此外,如果我提供慷慨的权限/var/clickhouse
,例如:chmod 777 /var/clickhouse
,这 可以正常工作,但我想确保这是最佳做法。
答案 0 :(得分:1)
docker run --rm -i --entrypoint /bin/sh yandex/clickhouse-server -c id clickhouse
uid = 105(clickhouse)gid = 106(clickhouse)groups = 106(clickhouse)
获取id后,您可以在主机操作系统上运行
chown -R 105:106 /var/lib/clickhouse