简单介绍下情况吧:docker里面的MySQL容器版本是5.7,本机的MySQL是8.0.13,我想在本机连接docker里面的MySQL,发现一直报错:
Host 'host.docker.internal' is not allowed to connect to this MySQL server
在网上搜索各种解决方案,比如说把host改为%(发现自己的本来就是%),还有其他各种方案,都没有解决我的问题。
最后我发现,我是根据官方文档来写的:
docker-compose.yml文档中有一个这样的;
expose:
-"3306"
就是这个原因,这个expose他不会把端口暴露给主机,所以连接不上。
最后改成:
ports:
-"3311:3306"
就行了,之所以用3311是因为我本机有mysql运行,占用了3306端口。