【问题标题】:Installation of system tables failed! boot2docker tutum/mysql mount file volume on Mac OS系统表安装失败! Mac OS 上的 boot2docker tutum/mysql 挂载文件卷
【发布时间】:2015-03-09 11:43:24
【问题描述】:

我在 Mac OS 上的 tutum/mysql 容器上安装卷时遇到问题。

我正在运行 boot2docker 1.5

当我跑步时

docker run -v $HOME/mysql-data:/var/lib/mysql tutum/mysql /bin/bash -c "/usr/bin/mysql_install_db"

我得到这个错误

系统表安装失败!检查 /var/lib/mysql 中的日志以获取更多信息。

运行上述命令还会创建一个 empty $HOME/mysql-data/mysql 文件夹。

tutum/mysql容器在没有挂载的情况下运行流畅。

我已成功在 nginx 演示容器上挂载了一个文件夹,这意味着 boot2docker 已正确设置为挂载卷。

【问题讨论】:

    标签: mysql macos docker boot2docker


    【解决方案1】:

    我猜这只是权限问题。要么在容器中找到 mysql 用户的 uid 并找到该用户的 chown mysql-data 目录,要么使用数据容器来保存卷。

    有关数据容器的更多信息,请参阅the official docs

    还要注意,当 Dockerfile 声明卷时,无论您是否使用 docker run-v 参数,都会进行挂载 - 它只发生在 Docker 控制的主机上的目录中(在 /var/lib/docker 下),而不是您选择的目录。

    【讨论】:

    • 将所有者更改为 mysql:mysql 导致此错误 mkdir: cannot create directory '/var/lib/mysql/mysql': Protocol error
    • uid 可能不同。在容器中找到mysql用户的uid,并在chown中使用。
    【解决方案2】:

    我在启动 mysql docker 容器时也遇到了问题,出现错误“安装系统表失败”。 docker 镜像没有变化,我的机器或 docker 上也没有最近的更新。我做的另一件事是在测试中使用可能占用或超过 5GB 内存的图像。

    清理悬空镜像和卷后,我可以像往常一样启动 mysql 镜像了。

    这个blog 似乎有一个很好的说明,并解释了使用 docker 进行清理的所有变体。

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 1970-01-01
      • 2013-06-29
      • 2019-12-28
      • 2015-07-10
      • 1970-01-01
      • 2016-10-04
      • 1970-01-01
      • 2012-04-02
      相关资源
      最近更新 更多