从本地主机连接到Docker MySQL容器?

我正在运行一个docker mysql映像,以下是docker-compose.yml文件的外观:

db:

image: mysql

environment:

MYSQL_ROOT_PASSWORD: ""

MYSQL_ALLOW_EMPTY_PASSWORD: yes

ports:

- "3306:3306"

这很好。

我的问题是:如何从主机(我的Macbook)上的命令行mysql客户端连接到在该容器上运行的MySQL实例?

澄清:

  • 我有一台装有Docker的Macbook
  • 我有一个带有mysql的docker容器
  • 我想从Macbook的终端连接到上述容器上运行的mysql实例
  • 我不想使用docker命令来实现这一点。相反,我想mysql直接从终端使用客户端(而不通过docker容器进行隧道传输)。

我没有在本地运行的MySQL,因此应打开端口3306并准备使用它。

我用来启动容器的命令是: docker-compose run

回答:

使用 docker-compose up

自从您3306在 上发布端口后,您将可以从该主机本身连接到127.0.0.1:3306

使用 docker-compose run

在这种情况下,docker-compose.yml文件的端口映射部分将被忽略。要考虑端口映射部分,您必须添加以下--service-

ports选项:

docker-compose run --service-ports db

附加说明

请注意,默认情况下,当您告诉mysql客户端连接时,mysql客户端会尝试使用unix套接字进行连接localhost。因此请使用127.0.0.1而不是localhost

 $ mysql -h 127.0.0.1 -P 3306 -u root

欢迎使用MySQL监视器。命令以;结尾; 或\ g。您的MySQL连接ID是1服务器版本:5.6.26 MySQL Community

Server(GPL)

版权所有(c)2000、2015,Oracle和/或其分支机构。版权所有。

Oracle是Oracle Corporation和/或其分支机构的注册商标。其他名称可能是其各自所有者的商标。

输入“帮助;” 或’\ h’寻求帮助。键入“ \ c”以清除当前输入语句。

mysql>

$ mysql -h localhost -P 3306 -u root

错误2002(HY000):无法通过套接字’/var/run/mysqld/mysqld.sock’(2)连接到本地MySQL服务器

以上是 从本地主机连接到Docker MySQL容器? 的全部内容, 来源链接: utcz.com/qa/408619.html

回到顶部