为了学习yaf框架,在本地搭建了一个docker环境,拉取的阿里的centos7/lnmp镜像。但是老是和数据库连接不了,前面已经知道docker在window中不会用127.0.0.1这个地址,而是使用192.168.99.100所以如果想在浏览器上访问,必须要做端口映射,同样的道理,mysql也需要端口映射,这是最重要的步骤,否则无法正常访问。

1.创建容器的时候使用-p参数为将可能用到的端口映射到宿主机虚拟IP端口上。

  

  这里我还是用192.168.99.100的3306端口作为数据库链接端口,可以使用下面命令查看是否映射成功

 docker ps -l

2.在容器内连接mysql 并且为这个虚拟ip授权

需要主要的是password这个字段在mysql高版本是用的authentication_string替换。

给mysql的user用户表添加一个user 其中host为%允许任何ip访问,密码同上即可,添加语句如下:


GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

上述设置成功后可以ping一下192.168.99.100,或者直接在客户端使用mysql连接工具进行连接,我这里使用navicat

for mysql 如图:


连接成功后可正常操作dokcer 容器中的数据库,并部署服务。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐