从本地主机连接到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