我与以下链接有类似的问题,但在Powershell中,因为我在Windows 10中运行Clickhouse Docker容器。
Data directory permissions on host for Clickhouse installation via docker
我的设置是这样运行的:
docker run -d -p 8124:8124 --name my_database --ulimit nofile=262144:262144 --volume=E:/:/var/lib/clickhouse yandex/clickhouse-server
E驱动器是Windows计算机上的驱动器之一。
运行合并树表创建时,我似乎无法访问/ var / lib / clickhouse / data。似乎没有为Clickhouse客户端提供足够的权限来访问此文件系统。错误看起来像这样:
Access to file denied: /var/lib/clickhouse/data/default/test_mergetree/tmp_insert_20150731_20150731_8_8_0
由于我处于Powershell状态,因此不确定如何解决此问题。我正在尝试访问文件系统以授予Powershell权限:
类似这样的东西
ICACLS "var/lib/clickhouse/data" /setowner "administrator"
但是随后由于clickhouse已被docker化,看来我找不到路径:
The system cannot find the path specified.
我必须运行docker compose吗?还是我走错路了?
尝试1
我尝试运行以下内容:
docker run --rm -i --entrypoint /bin/sh yandex/clickhouse-server -c id clickhouse
#got back:
uid=0(root) gid=0(root) groups=0(root)
#went into the system and ran
docker exec -it container-id bash
chown -R 0:0 /var/lib/clickhouse
#got back
chown: cannot read directory '/var/lib/clickhouse/System Volume Information': Permission denied
答案 0 :(得分:0)
原来这是Windows docker桌面上尚未修复的问题:
https://github.com/docker/for-win/issues/39
大量安装是必要的。但是我通过将磁盘映像更改为目标主机驱动器来解决了这个问题。在设置->高级->下,将虚拟硬盘映像更改为所需的驱动器,然后可以在该驱动器中进行写入。请注意,您仍然无法访问原始数据。
答案 1 :(得分:0)
您应该在Linux而不是Windows上运行docker和clickhouse。