开始写谷粒商城,安装了mysql,和redis,到最后一步本机mysql连接虚拟机Centos7的docker安装的mysql卡住了,一直连接不上,被卡在这好几天,docker也是玩明白了,挂载的代码已经滚瓜烂熟了,最后这是关于挂载是docker的权限问题。(以下第一次解决了一些问题的图没截到,又用了第二个虚拟机想重现问题截图,但是挂载一次后这个问题又解决,所以虚拟机用户会不一样)
1.通过docker ps查看docker的mysql容器发现没有端口号
如下图倒数第二个“端口号”没有映射,而且倒数第三个“状态status”显示restarting重启中
我们通过docker进入mysql容器也失败,显示这个容器没有启动中,那么问题就是docker已经创建了mysql的容器,但是没有启动。
2.我们使用以下命令查看mysql容器日志
docker logs 容器名/容器id
发现都是显示这个 cannot access ‘/docker-entrypoint-initdb.d/': Operation not permitted
搜索这个问题发现是说docker给容器权限的问题,官网要求在挂载容器时添加--privileged即可
3.现在停止正在运行的容器
docker stop 容器名
4.删除容器
docker rm 容器名
如下图
5.现在重新挂载容器,在docker run时添加--privileged即可,(注意:使用自己设置的挂载目录,不要直接粘贴复制)如下
docker run --privileged --restart=always -p 3306:3306 --name mysql \
-v /mydata/mysql/conf:/etc/mysql/my.cnf \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/log:/var/log/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:版本号(下载时没输入版本号就是下载最新,则不用输入版本号直接-d mysql即可)
6.挂载后限时出来了端口号映射,之前有时挂载后mysql容器也会有端口号,但是没一会或者重启容器就掉了,现在重启容器端口号映射还在。
使用“docker exec -it mysql /bin/bash”进入mysql容器也能正常进入
7.现在使用虚拟机的ip地址连接本机mysql现实success成功
精彩文章
发表评论