禅道18.6 docker版 外部无法连接容器mysql
一、原因分析
在宿主机中运行下列命令进行检查:
ping [容器ip]可以ping通telnet 127.0.0.1 [映射的web端口]连接正常telnet 127.0.0.1 [映射的mysql端口]连上后立刻被切断,提示:"Connetion closed by foreign host"
可以断定是mysql服务的问题
二、修改mysql配置
- 禅道docker使用zbox作为运行环境(zbox是轻量php集成环境),其zbox运行mysql后读取的配置文件路径为:"/opt/zbox/etc/mysql/my.cnf"
在禅道开源版18.6版docker环境中,容器将该配置文件映射到了外部,其路径为:"[/home/ubuntu/zentaopms]/mysql/etc/my.cnf"
上述 [/home/ubuntu/zentaopms] 为运行docker时映射的宿主机路径,根据自己情况调整
- 打开my.cnf该配置文件,将其中"
bind-address"所在行后面的ip改为"0.0.0.0"后保存即可
三、重启容器
- 重启后,查看容器启动日志是否正常,容器有输出"Zentao is ready to use.",并且web可正常访问,则可以忽略后面内容
如果你比较幸运和我用了一样的18.6版本,那么恭喜你,重启后会面临另一个问题,容器运行报错:"ln: failed to create symbolic link '/opt/zbox/tmp/mysql/mysql.sock': File exists"
那么请参考这篇文章:
禅道18.6 docker版 容器重启后无法运行报错提示"mysql.sock File exists"**- 至此问题应该得到了解决,请在宿主机中再次尝试连接容器内的mysql,如果问题还是没有解决,请重复“原因分析”中的步骤进行排查
评论已关闭