在浏览了SOF的以下链接后,我仍然面临着这个问题,没有任何推理或解决方案。
参考资料:
Mysql 5.7在我的本地计算机中作为容器运行。服务器启动后,使用root用户或创建的新用户连接到服务器时,会在localhost/0.0.0/127.0.0.1上发生故障。即使在禁用firewald之后,连接也会失败,并出现相同的错误。我可能对这种连接做了一些非常错误的事情。任何建议都会有帮助。
version: '3.5'
services:
service:
image: mysql:5.7
#build:
# context: ./
# dockerfile: Dockerfile
environment:
MYSQL_USER: user
MYSQL_PASSWORD: manage
MYSQL_ROOT_PASSWORD: manage
MYSQL_DATABASE: testapp
ports:
- published: 3306
target: 3306
下面是docker compose up-d之后的输出
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45ba02e6e457 mysql:5.7 "docker-entrypoint.s…" 52 seconds ago Up 50 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp
下面是连接到mysql容器的尝试。
mysql -u root -h localhost -pmanage
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
mysql -u root -h 0.0.0.0 -pmanage
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
mysql -u root -h 127.0.0.1 -pmanage
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
运行容器的IP工作正常。但这并不是一个解决方案,因为IP会随着时间而变化。
mysql -u root -h 172.31.0.2 -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.30 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
我不是在寻找另一个docker命令的解决方案。如何连接到mysql容器从docker主机使用mysql客户端。
您需要在连接url中使用--protocol=tcp
。
mysql -u root -h localhost --protocol=tcp
您的mysql正在docker容器中运行。因此,您必须通过TCP进行连接,而本地套接字对此不可用。这基本上是这个问题的重复。
厘斯7.8 docker run -d -p 8080:80 --name nginxtest nginx docker ps CONTAINER ID Image PORTS NAMES xxxxxxxx nginx 0.0.0.0:8080- curl localhost:8080 < br > curl:(56)Recv失败:连接被对等方重置 netstat-tulpn<br>tcp6 0
问题内容: 我正在运行一个docker mysql映像,以下是docker-compose.yml文件的外观: 这很好。 我的问题是:如何从主机(我的Macbook)上的命令行mysql客户端连接到在该容器上运行的MySQL实例? 澄清: 我有一台装有Docker的Macbook 我有一个带有mysql的docker容器 我想从Macbook的终端连接到上述容器上运行的mysql实例 我不想使用命
(由于我对Docker或mysql管理的了解有限,这可能是一个愚蠢的问题,但由于我花了整整一个晚上讨论这个问题,所以我敢问这个问题。) 概括地说 我想在docker容器中运行mysql,并从我的主机连接到它。到目前为止,我取得的最好成绩是: 更多详细信息 我正在使用以下: 在有此文件的目录中,我可以成功地构建映像并运行它: 当我连接到图像上时,它似乎工作得很好: 然而,我并没有从主持人那里获得那么
问题内容: 所以我想连接到我在主机上运行的mongodb(DO Drop,Ubuntu 16.04)。它在localhost 的默认端口上运行。 然后,我使用mup将我的Meteor应用程序部署在我的DO Drop上,该DO Drop使用docker在容器内运行Meteor应用程序。到目前为止,一切都很好。使用标准连接URL将应用程序连接到mongodb。现在我有以下问题: 显然不能在docker
我已经使用docker工具箱在视窗机器上安装了docker。我也在我的视窗机器上安装了mysql,服务器运行在端口3306上(localhost-127.0.0.1-在docker机器之外)。我在一个名为“micra-workq-svc”的docker网络内部的docker容器中运行一个冲刺启动应用程序,我希望在docker内部运行的应用程序连接到本地主机。我花了几个小时在谷歌上搜索,没有一个链接
我已经创建了一个MySQL数据库的映像,并在容器中运行它。我希望它在端口3406/3407上运行,因此我调用docker run命令如下所示: 如果我看我的容器,它看起来是这样的: 我非常想连接到我的数据库现在,但我似乎不能使我的URL工作。 这是我的URL的样子: