【发布时间】:2022-12-09 06:03:51
【问题描述】:
我正在尝试运行一个 mysql docker 容器,其中持久数据映射到通过 CIFS 安装的文件夹。
(我最初发布了一个更一般的问题,但在用户权限方面更进一步,现在错误似乎是特定于 innodb 的。因此我正在编辑整篇文章,以免混淆任何阅读它的人。)
下面是启动容器的命令:
docker run \
--name localmysql \
-v /mnt/mysqlshare:/var/lib/mysql \
--rm \
--env MYSQL_ALLOW_EMPTY_PASSWORD=true \
-it \
mysql:8.0.31-debian
/mnt/mysqlshare is a mounted cifs share. The command to map the CIFS mount is below:
sudo mount -t cifs -o username=linuxmount,cache=none,vers=3.0,uid=999,gid=999,rw [networkpath] /mnt/mysqlshare
在运行 docker 的机器上,我设置了一个名为“mysql”的用户,它是映射的 cifs 驱动器的所有者。它被配置为将 999 作为 uid 和组(与默认使用的 docker 容器中的 mysql-user 相关联)。
当远程进入容器(交互式会话)并更改为“su mysql”时,我能够写入 /var/lib/mysql 并且更改会反映在已安装的驱动器中。
但是,在启动容器时,我收到以下不断重复的错误:
2022-12-08T21:12:56.435340Z 0 [ERROR] [MY-012894] [InnoDB] Unable to open './#innodb_redo/#ib_redo0' (error: 11).
2022-12-08T21:12:56.435784Z 0 [ERROR] [MY-012574] [InnoDB] Unable to lock ./#innodb_redo/#ib_redo0 error: 13
文件夹中添加了文件:
【问题讨论】: