不能使用127.0.0.1连接mysql服务器的docker容器,但可以使用IP?
在我的个人电脑中,有一个docker mysql容器与端口3306绑定。它工作的很好。 我可以通过另一台PC将这个容器中的mysql服务器连接起来。
sh$ mysql -hxxx.xxx.xxx.110 -uroot -p
在主机上,我可以通过这种方式连接容器:
sh$ mysql -hxxx.xxx.xxx.110 -uroot -p
但是当我尝试连接容器到127.0.0.1,它失败:
sh$ mysql -uroot -p
已知:
-
在容器中,我可以通过以下方式连接mysql服务器:
sh$ mysql -uroot -p
-
密码没有问题
-
同时,我可以通过主机连接127.0.0.1:6376到redis容器….
我只是在猜测,但是Docker容器可能有自己的[pseudo]networking接口。 但是你试图通过主机的回送接口进行连接。 这是两个独立的networking。
请记住,127.0.0.1不只是一个特殊的IP–它是由一个单独的networking接口分配的IP。
您可以configurationDocker来共享主机的networking堆栈; 也许这将是最好的。
请按照以下步骤操作:1.使用iploginmysql并使用“从mysql.user中select主机,用户,密码”; 在命令结果中检查127.0.0.1是否存在;
2.如果不是请执行授权命令并确保127.0.0.1有权限,然后再次托盘login。
grant all on *.* to root@'127.0.0.1' identified by 'root'; flush privileges;
你将要检查你的my.cnf
的bind-address
configuration:
# # File: my.cnf # [mysqld] bind-address = 192.168.1.100
在良好的实践中,根据你的使用情况,这应该是127.0.0.1
。
- Kubernetes部署,Pod和Container概念
- 最新的容器上的Docker exec命令,而不复制和粘贴ID
- Docker提供商在Vagrant上同步文件夹错误
- 如何在ec2上使用docker运行2个WordPress博客
- 我怎么能更改Docker存储驱动程序到mac上的devicemapper
- 将本地泊坞窗图像存储在外部HDD boot2docker上
- Gitlab停止CI如果Dockerized R CMD检查返回错误
- Docker:docker run -it容器和docker run -it容器bash有什么区别
- docker git repo如何在pull请求中显示不同的标签,比如status / need-review