![](/img/trans.png)
[英]2003: Can't connect to MySQL server on '127.0.0.1:3306' (99 Cannot assign requested address)
[英]Cannot connect mysql server by using 127.0.0.1:3306 under host mode
我正在使用主機模式運行一個 mysql 容器,這是我docker-compose.yml
mysql:
image: mysql:8.0
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
volumes:
- ./mysql/datadir:/var/lib/mysql
- ./mysql/mysql-files:/var/lib/mysql-files
- ./mysql/conf.d:/etc/mysql
network_mode: host
container_name: mysql
按照我的理解,主機模式將共享主機的網絡,因此端口3306
,MySQL的容器,搬運工聽了應該等於聽了主機上的3306
端口。 所以我應該可以通過127.0.0.1:3306
或localhost:3306
訪問 mysql 但事實是失敗的。
為什么? 有什么不對?
我可以使用橋接模式連接到 mysql。 但是由於種種原因,我需要使用主機模式
檢查以下內容,
ip addr show
查看 ip 地址 sudo netstat -tulpn | grep :80
您使用的登錄名有什么權利? Docker 有自己的網絡管理方式,因此如果您的登錄名使用 'localhost' 或 127.0.0.1',您的容器將不會看到它。 嘗試docker inspect <yourContainerId> | grep IPAddress
docker inspect <yourContainerId> | grep IPAddress
,您將在 docker 網絡中看到容器的“真實”地址。
如果您授予登錄名@'%' 的權限,那么它應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.