在使用docker安裝mysql并運行鏡像后,雖然容器內提示已準備好連接并顯示端口號為3306,但本地使用命令行嘗試連接時卻顯示錯誤。這背后的原因是什么?
答案在于映射端口。docker容器運行時,它們與宿主機具有隔離的網絡空間。因此,容器內的3306端口并不直接映射到宿主機。而是會根據宿主機和容器的網絡配置,動態分配一個端口。
在大多數情況下,docker會自動分配一個端口,該端口通過命令 docker ps 可查詢。在這個例子中,映射端口應該是33060。
因此,要從本地連接到docker中的mysql,需要指定映射端口:
mysql -P 33060 -u root -p
另外,還需要修改容器內mysql用戶的權限,以允許遠程連接。最簡單的辦法是把用戶的主機名設置為 %,允許來自任何主機的連接。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END