1、在centos的docker上安装mysql提示chown mod/var/lib/mysql permission denied,通过下面的方法解决。 Centos7安全Selinux禁止了一些
1、在centos的docker上安装mysql提示chown mod /var/lib/mysql permission denied,通过下面的方法解决。
Centos7安全Selinux禁止了一些安全权限,导致mysql和mariadb在进行挂载/var/lib/mysql的时候会提示如下信息:
[root@localhost ~]# docker run -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql chown: changing ownership of '/var/lib/mysql/': Permission denied[root@localhost ~]#
logs命令查看,发现提示信息是:chown: changing ownership of ‘/var/lib/mysql/....‘: Permission denied
于是,解决方法有这么三个:
- 在docker run中加入 --privileged=true 给容器加上特定权限
- 关闭selinux
- 在selinux添加规则,修改挂载目录de
docker run --privileged=true -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysql:/var/lib/mysql -p 3306:3306 -d mysql #-e MYSQL_ROOT_PASSWORD=123456 设置mysql的root密码为123456#-v /data/mysql:/var/lib/mysql 设置mysql数据文件到本机的/data/mysql中,数据文件在docker中为/var/lib/mysql#-p 3306:3306 端口映射:前面的3306为宿主机的端口号,后面的3306为docker暴露出来的端口号#--privileged=true docker中/var/lib/mysql文件夹操作仅限,如果不加则用root用无法启动#-d 后台守护进程