提出问题:

在使用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容器时,需要使用自定义配置文件,可在主机上创建目录,设置所有者为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

MySQL 5.6容器使用自定义配置文件的权限问题的更多相关文章

  1. 详解使用DockerHub官方的mysql镜像生成容器

    详解使用DockerHub官方的mysql镜像生成容器 收藏 yope 发表于 10个月前 阅读 1506 收藏 32 点赞 1 评论 0 腾讯云·云上实验室:开发者零门槛,免费使用真机在线实验!&g ...

  2. Docker部署 Mysql .Net6等容器

    Centos8安装Docker 1.更新一下yum [root@VM-24-9-centos ~]# yum -y update 2.安装containerd.io # centos8默认使用podm ...

  3. thinkphp3.2自定义配置文件

    扩展配置可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样. 设置扩展配置的方式如下(多个文件用逗号分隔): // 加载扩展配置文件 'LOAD_EXT_CONFIG' => 'u ...

  4. mysql如何用order by 自定义排序

    mysql如何用order by 自定义排序 id name roleId aaa bbb ccc ddd eee ,MySQL可以通过field()函数自定义排序,格式:field(value,st ...

  5. beego里面自定义配置文件

    beego编译好的exe通过全路径调用会crash,看了半天,发现是解析不到配置文件,研究了下 发现beego自定义配置文件以后,需要手工parse,我表示,以为是自动化的,没想到是半自动化的…… 追 ...

  6. Springboot读取配置文件及自定义配置文件

    1.创建maven工程,在pom文件中添加依赖 <parent> <groupId>org.springframework.boot</groupId> <a ...

  7. springboot读取自定义配置文件节点

    今天和大家分享的是自定义配置信息的读取:近期有写博客这样的计划,分别交叉来写springboot方面和springcloud方面的文章,因为springboot预计的篇章很多,这样cloud的文章就需 ...

  8. mysql-8.0 安装教程(自定义配置文件,密码方式已修改)

    下载zip安装包: MySQL8.0 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=476233,进入页面后可以不登录.后 ...

  9. SpringBoot之加载自定义配置文件

    SpringBoot默认加载配置文件名为:application.properties和application.yml,如果需要使用自定义的配置文件,则通过@PropertySource注解指定. J ...

随机推荐

  1. linux 系统下apache 找不到apxs 文件

    yum install httpd-devel

  2. java_Arrays.sort()方法

    这个方法位于util包里,可以传入任一类型数组,默认按照字典序升序排序 如果要按照降序排序,直接写一个循环来颠倒顺序就好了 源码如下 String[] name = {"1",&q ...

  3. 《Mysql 分区分表》

    一:分区/分表 为了什么? - 当MySQL单表的数据量过大时,数据库的访问速度会下降,需要处理大量数据,所以需要把数据分散存储. - 常用 "水平" 切分 二:MySQL常见的水 ...

  4. EXT的bug 布局border 和 grid的cellediting

    首先 我要的布局是上下两块,并且高度和按自己的喜欢可调节,所以我采用的是border的布局, 上下两块,都放grid列表,上面一块不可编辑,下面这块可编辑,如图 在编辑第二块的时候会出现这个现象 图一 ...

  5. python编写shell脚本详细讲解

    python编写shell脚本详细讲解 那,python可以做shell脚本吗? 首先介绍一个函数: os.system(command) 这个函数可以调用shell运行命令行command并且返回它 ...

  6. [js]js设计模式-原型模式

    构造函数模型- 对象的属性和方法每人一份 function createJs(name, age) { this.name = name; this.age = age; this.writeJs = ...

  7. React之ant design的table表格序号连续自增

    render(text,record,index){     return(       <span>{(pagination.current-1)*10+index+1}</spa ...

  8. 如何相互转换逗号分隔的字符串和List【转】

    将逗号分隔的字符串转换为List 方法 1: 利用JDK的Arrays类 String str = "a,b,c"; List<String> result = Arr ...

  9. Linux下安装whl文件

    直接使用pip安装: [root@mycentos ~]# pip install *.whl

  10. 从零开始一起学习SLAM | 给点云加个滤网

    对VSLAM和三维重建感兴趣的在计算机视觉life"公众号菜单栏回复"三维视觉"进交流群. 小白:师兄,上次你讲了点云拼接后,我回去费了不少时间研究,终于得到了和你给的参 ...