在使用docker圖形界面運行mysql鏡像后,您可能遇到從本地無法連接到mysql的情況。盡管鏡像報告”等待連接”并且端口號為3306,但本地連接仍然無法成功。
原因
此問題通常是由以下原因引起的:
- docker映射的端口可能不是3306(默認端口)。
- mysql用戶可能未配置為允許遠程連接。
解決方案
1. 檢查端口映射
docker可能將mysql容器映射到本地系統上的不同端口。要查找映射的端口,請使用以下命令:
docker port [container_id] 3306
該命令將顯示映射的端口。例如,它可能顯示為:
33060/tcp -> 3306/tcp
這表示docker將容器中的3306端口映射到本地系統的33060端口。因此,您需要連接到33060端口。
2. 修改mysql用戶設置
要允許遠程連接,您需要修改mysql容器中的mysql用戶設置。可以使用以下命令編輯mysql配置:
docker exec -it [container_id] bash vi /etc/mysql/mysql.conf.d/mysqld.cnf
在配置文件中找到以下行:
# bind-address = 127.0.0.1
將該行注釋掉或將其更改為:
bind-address = 0.0.0.0
這將允許mysql用戶從任何ip地址接受連接。
連接到docker mysql
執行上述步驟后,您應該能夠使用以下命令連接到docker mysql:
mysql -P 33060 -u root -p
其中,33060是映射的端口號。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END