[請益] 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