在Mac OS X El Capitan上。
以前使用的是Docker工具箱。刚卸载了它并安装了Docker for Mac beta。(我认为卸载和安装都很干净)
基本上像这样启动一个MySQL服务器容器:
docker run -e MYSQL_ROOT_PASSWORD=1234 -d mysql:5.7.13
我尝试使用 "Standard" 方式通过 Sequel Pro 连接主机为 127.0.0.1,用户名为 root,密码为 1234 的服务器。该服务器使用的是 MySQL 或 MySQL-Server 版本为 5.7.13。启动似乎没有问题。
Unable to connect to host 127.0.0.1 because access was denied.
Double-check your username and password and ensure that access from your current location is permitted.
MySQL said: Access denied for user 'root'@'localhost' (using password: YES)
使用 -p 3306:3306
没有帮助。
在使用 Docker Toolbox 时,我曾经使用以下命令可以正常工作:
docker run \
-e MYSQL_ROOT_PASSWORD=1234 \
-d \
--expose 3306 \
-p 3306:3306 \
mysql:5.7.12
并连接到主机192.168.99.100。这个很好用。
我怀疑在安装过程中Docker for Mac的“迁移”(将现有的Docker内容复制到新的虚拟机中)可能会保留一些旧数据(来自旧的MySQL容器),导致出现问题,但不知道该如何继续操作。
感谢您的帮助!
--expose
和-p
参数;在 Sequel Pro 中,我提供了 '192.168.99.100'、'3306'、'root'、'1234'。这很好用。在 Docker for Mac 中,我没有使用--expose
和-p
参数。使用-p
参数会出现以下错误:docker: Error response from daemon: driver failed programming external connectivity on endpoint local-docker-mysql (d9816ec5bc57dfd29df475195f3ab7d5b52fc0527677f1e705eecc02ebdac973): Error starting userland proxy: Failed to bind tcp 0.0.0.0:3306 address already in use.
官方 MySQL docker 页面的示例不使用-p
参数。 - zpz