开始写谷粒商城,安装了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成功

精彩文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。