你遇到了在 docker 容器中運行 mysql 鏡像后無法從本地連接的問題。日志顯示 mysql 已經在監聽 3306 端口。
原因分析
你提到的原因可能是正確的,即本機上的 mysql 進程正在占用 3306 端口,從而導致 docker 容器中的 mysql 無法在該端口上綁定。
解決方案
要解決此問題,你可以執行以下操作:
- 修改 docker 配置:將 docker 容器中的 mysql 綁定到一個不同的端口。例如,將 -p 3306 參數修改為 -p 33060。
- 卸載本地 mysql:如果你不再需要本機上的 mysql,可以卸載它以釋放 3306 端口。
- 配置遠程連接:即使卸載了本地 mysql,也可以為 docker 容器中的 mysql 啟用遠程連接。使用以下命令將 mysql 用戶設置為允許遠程連接:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES;
登錄后復制