将MySQL工作台与MySQL容器连接


9

我从Dockerhub中提取了MySQL容器,它正在我的macbook pro上运行,如下所示

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
12cd3deaa3f0        mysql:latest        "/entrypoint.sh mysql"   47 hours ago        Up 10 minutes       3306/tcp            mysqldb

然后,我下载了MySQL工作台,并尝试将其与MySQL容器连接,但是它不起作用。显示连接错误。

Your connection attempt failed for user 'root' from your host to server at 192.168.99.102:3306:
Can't connect to MySQL server on '192.168.99.102' (60)

来自docker机器的IP是

docker-machine ip default
192.168.99.100

如上所示,MySQL的端口为3306。

要导出MySQL端口,我尝试使用以下语句

docker run -d -P mysql:latest mysqldb

它根本不起作用。我究竟做错了什么?

Answers:


9

似乎您在运行容器时未设置-p 3306:3306参数。另外,似乎您在MySQL Workbench中输入了主机名中的IP地址。我建议按照以下说明从头开始:

  1. 运行mysql服务器。(将密码更改admin为所需的任何密码)

docker run -e MYSQL_ROOT_PASSWORD=admin --name mysql -d -p=3306:3306 mysql

  1. 通过运行获取默认docker虚拟机的IP地址

docker-machine ip default

  1. 复制上一条命令将获得的IP地址。(在您的情况下,应为192.168.99.100)
  2. 打开MySQL Workbench并创建一个新连接。将复制的IP地址粘贴到“主机名”字段中。

您应该已经准备就绪。


1

该参数自动-P容器的导出端口绑定到主机的可用端口。

以下命令应将容器端口3306绑定到主机的端口3306。请参阅:发布或公开端口

docker run -d -p 3306:3306 mysql:latest mysqldb

我输入了该语句,docker run -d -p 3306:3306 mysql:5.7.9 dbmysql并获得了输出,d38a0f208bcda50132d7f6f679c9282b0d90b275610b8d19ac93bf82d94eea43但仍然无法使用mysql workbench访问mysql容器。当我键入d6b44992ec77 mysql:5.7.9 "/entrypoint.sh mysql" About a minute ago Up About a minute 3306/tcp dbmysql
docker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.