要實(shí)現(xiàn)外部訪問(wèn)Docker中MySQL需四步:1. 啟動(dòng)容器時(shí)用-p映射3306端口;2. 創(chuàng)建或修改用戶權(quán)限允許'%'遠(yuǎn)程登錄;3. 確保bind-address設(shè)為0.0.0.0;4. 開(kāi)放宿主機(jī)防火墻及云安全組規(guī)則。
在 Docker 中運(yùn)行 MySQL 時(shí),默認(rèn)情況下只允許本地連接。如果需要從外部網(wǎng)絡(luò)訪問(wèn) MySQL 容器,必須正確配置網(wǎng)絡(luò)和權(quán)限。以下是關(guān)鍵步驟。
運(yùn)行 MySQL 容器時(shí),使用 -p 參數(shù)將容器的 3306 端口映射到宿主機(jī):
docker run -d --name mysql-container \ -e MYSQL_ROOT_PASSWORD=your_password \ -p 3306:3306 \ mysql:8.0這樣外部客戶端可以通過(guò)宿主機(jī) IP 和 3306 端口連接 MySQL。
MySQL 默認(rèn)只允許 root 用戶從 localhost 登錄。要支持遠(yuǎn)程訪問(wèn),需創(chuàng)建用戶或修改現(xiàn)有用戶的訪問(wèn)權(quán)限。
進(jìn)入容器執(zhí)行 MySQL 命令:
docker exec -it mysql-container mysql -u root -p登錄后執(zhí)行以下 SQL 授權(quán) root 用戶從任意主機(jī)訪問(wèn)(生產(chǎn)環(huán)境建議限制 IP):
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;或者修改已有 root 用戶的 host:
UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES;某些 MySQL 鏡像默認(rèn)綁定到 127.0.0.1,會(huì)阻止外部連接。確保 bind-address 設(shè)置為 0.0.0.0。
可在啟動(dòng)容器時(shí)通過(guò)配置文件或命令行參數(shù)覆蓋:
docker run -d --name mysql-container \ -e MYSQL_ROOT_PASSWORD=your_password \ -p 3306:3306 \ --command='--bind-address=0.0.0.0' \ mysql:8.0或掛載自定義配置文件 my.cnf,包含:
[mysqld] bind-address = 0.0.0.0確保宿主機(jī)防火墻開(kāi)放 3306 端口:
# Ubuntu/Debian sudo ufw allow 3306sudo firewall-cmd --add-port=3306/tcp --permanent sudo firewall-cmd --reload
云服務(wù)器還需檢查安全組規(guī)則,允許外部 IP 訪問(wèn) 3306 端口。
基本上就這些。只要端口映射正確、用戶權(quán)限設(shè)置合理、MySQL 允許遠(yuǎn)程綁定,外部就能順利連接。注意生產(chǎn)環(huán)境應(yīng)避免使用 root 遠(yuǎn)程登錄,建議創(chuàng)建專(zhuān)用用戶并限制來(lái)源 IP。
以上就是如何在docker中配置mysql網(wǎng)絡(luò)訪問(wèn)權(quán)限的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)