[请益] docker容器连线不上问题

楼主: MOONY135 (谈无欲)   2019-09-07 18:02:51
最近在研究docker 容器
想用写好的go去连mysql
这是我的docker-compose档
https://pastebin.com/embed_js/2x5MgY2q
这是go连线到mysql的设定
https://pastebin.com/embed_js/KrnH2DZ7
当我docker-compose up之后
我从终端机连到mysql 用root权限是可以进去的
也看到已经create好的db
不过从专案那边要连过去的时候(我开api 再用postman去打那只api)
专案的log会跳出 mysql connect refused
但我已经在初始化db的时候去update root可以从其他ip连线进来
UPDATE user SET Host='%' WHERE User='root' AND Host='localhost' LIMIT 1;
flush privileges;
CREATE DATABASE IF NOT EXISTS rockman;
请问有人可以帮帮忙吗XD 1000p(不含税)
作者: BigTounge (舌头)   2019-09-07 18:23:00
应该是config的port错了 应该是3306host应该可以改用hostname代替ip直接改成mysql
楼主: MOONY135 (谈无欲)   2019-09-07 18:43:00
好 我等下试试看
作者: sextitanic   2019-09-07 20:37:00
有用 network 就不用 links 了composer version 可以改用 3
作者: justben (BEN)   2019-09-07 20:53:00
那个 ... 密码有设对吗
作者: ripple0129 (perry tsai)   2019-09-07 21:05:00
database.host改mysql,database.port改3306
楼主: MOONY135 (谈无欲)   2019-09-07 21:20:00
密码有对 我有用exec进去看过 可以进去
作者: ripple0129 (perry tsai)   2019-09-07 22:51:00
go连接3306是mysql那台容器的3306不是你本地的3306,跟冲突没关系,你甚至可以直接移除掉docker-compose mysql的port设定
楼主: MOONY135 (谈无欲)   2019-09-07 22:53:00
我有确定把DOCKER的images全清了 再docker-compose up不过还是会跳这个 这样是port设定有问题吗
作者: googoo1102 (googoo)   2019-09-07 23:34:00
上面的意思是你要用mysql container的IP连
作者: s77485p (快乐猪)   2019-09-08 00:02:00
他都在同一个网段下面了,应该不用知道mysql server的ip然后记得好像是用容器名称当作ip位置https://titangene.github.io/article/networking-in-docker-compose.html 可以参考看看啊抱歉忘记缩网址
作者: BigTounge (舌头)   2019-09-08 00:36:00
是go的config改 不是docker-compose的portdocker-compose里的port是容器对应本机port会冲突就是你本机3306已经有在使用所以才开不起来收到你的P币了 谢谢
作者: ckmonkey06 (LeonJ如同你所说的,是一)   2019-09-09 00:50:00
可能是因为你本机上已经有mysql 所以3306已经被占用了
作者: badboy821022 (我想吃鳗鱼饭)   2019-09-11 11:52:00
docket-compose mysql 设定那边做port mapping啊 3306:本机没在使用的port

Links booklink

Contact Us: admin [ a t ] ucptt.com