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