zoukankan      html  css  js  c++  java
  • MySQL 5.6容器使用自定义配置文件的权限问题


    提出问题:

             在使用Rancher2.0.2部署一个mysql deployment时,我们会发现,如果只设置/var/lib/mysql数据目录时,mysql容器(pod)能够正常启动,一旦数据目录和配置目录同时挂载时,mysql容器(pod)就无法启动。


    解决思路:

             我们运行一个MySQL 5.6的容器,观察正常运行时,容器内数据目录、配置目录、日志目录的所有者及权限,并查看容器内组文件,对比宿主机中的组文件,应该能找到原因所在,进而可以通过在宿主机中设置正确的目录权限和所有者来解决该问题。


    Docker宿主机中:

    组文件:    /etc/group

    root:x:0:

    adm:x:4:syslog,catty

    docker:x:999:catty

    catty:x:1000


    MySQL容器中:

    功能                 目录                                chown -R        chmod

    日志目录:  /var/log/mysql                      mysql:adm        640

    数据目录:  /var/lib/mysql                       mysql:mysql      640

    配置文件:  /etc/mysql/mysql.conf.d        root:root            644

    组文件:      /etc/group

    root:x:0:

    adm:x:4:

    mysql:x:999:


    图1、MySQL5.6容器中目录权限及所有者

    MySQL容器目录权限及所有者

    解决办法:

             如果运行mysql容器时,需要使用自定义配置文件,可在主机上创建目录,设置所有者为root用户和root组,命令: chown -R root:root /etc/mysql/ ,然后运行容器时,使用-v /etc/mysql:/etc/mysql 将该目录挂载到容器中,这样才能正常启动MySQL容器。


    参考链接

    Set permissions on log folder #349

    https://github.com/docker-library/mysql/pull/349

    5.7.10-fails to mount volume `/var/log/mysql` #146

    https://github.com/docker-library/mysql/issues/146#ref-commit-68a2cd4

  • 相关阅读:
    COF框架集成mongodb驱动
    在 RedHat Enterprise、CentOS 或 Fedora Linux 上安装 MongoDB
    利用RATF框架实现web状态的监控
    利用接口测试框架实现web状态的监控
    uwsgi配置
    NODE_ENV&&cross-env的使用
    局部安装的webpack怎么通过npm脚本执行
    react
    .gitignore无法忽略部分文件/文件夹
    MongoDB
  • 原文地址:https://www.cnblogs.com/rancher-maomao/p/9236069.html
Copyright © 2011-2022 走看看