【问题标题】:Unable to connect to MYSQL from Docker Instance无法从 Docker 实例连接到 MYSQL
【发布时间】:2018-12-02 16:44:24
【问题描述】:

我是 Docker 的新手,并使用以下命令从 docker hub 中提取了 mysql

docker pull mysql

现在,使用以下命令启动 mysql 实例。

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
Unable to find image 'mysql/mysql-server:latest' locally
latest: Pulling from mysql/mysql-server

e64f6e679e1a: Pull complete
799d60100a25: Pull complete
85ce9d0534d0: Pull complete
d3565df0a804: Pull complete
Digest: sha256:59a5854dca16488305aee60c8dea4d88b68d816aee627de022b19d9bead48d04
Status: Downloaded newer image for mysql/mysql-server:latest
1be4f5dde2fb4e1d99e23ee2de5e3b663c7c2d0fabe7ef459cf87385071a2e0d

现在,我检查了所有服务都已启动并正在运行。

docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS                   PORTS                               NAMES
1be4f5dde2fb        mysql/mysql-server:latest   "/entrypoint.sh mysql"   3 minutes ago       Up 3 minutes (healthy)   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
e7d9e3713f5c        ubuntu                      "/bin/bash"              6 days ago          Up 6 days                                                    angry_hodgkin

现在我执行以下命令,无法连接到mysql -

mysql -h127.0.0.1 -ppassword -uroot
-bash: mysql: command not found

Docker 版本..

docker --version
Docker version 1.12.3, build 6b644ec

现在,我遇到了错误 - EDIT-1

docker exec -it 1be4f5dde2fb bash
bash-4.2# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
bash-4.2# sudo mysql
bash: sudo: command not found

https://hub.docker.com/r/mysql/mysql-server/

【问题讨论】:

  • mysql: command not found: 你需要在你的主机上安装 MySQL 客户端工具。
  • @DavidMaze - 我们该怎么做?

标签: mysql docker docker-compose


【解决方案1】:

使用以下命令进入 docker 容器

docker exec -it mysql bash

然后您可以通过执行以下命令轻松连接到 MySQL

mysql -uroot -p

如果您尝试从主机连接,则必须安装 mysql 客户端。 在mac上,命令如下

brew install mysql

【讨论】:

  • 我收到bash-4.2# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) bash-4.2# sudo mysql bash: sudo: command not found bash-4.2# 为什么我们应该使用brew instal mysql,因为我已经在使用mysql 映像并正在运行它?如何连接到它?
  • 您已经安装了 MySQL 服务器容器。要从命令行连接它,您必须在容器内进行。 docker 记录 mysql 2>&1 | grep GENERATED - 在容器外运行此命令。您将获得密码。您可以使用以下命令进行连接 mysql -u root -p 使用第一个命令共享的密码。说明:hub.docker.com/r/mysql/mysql-server
  • 我执行了docker logs mysql 2>&1 | grep GENERATED,但它没有给我任何东西
  • 进入容器后,可以执行以下命令 mysql -uroot -p {Hit enter and type password when it prompts to}。共享错误(如果有)
  • @PAA:你也可以使用:docker exec -it mysql bash进入docker实例,会更容易记住。
猜你喜欢
  • 1970-01-01
  • 2023-01-27
  • 2015-12-31
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
  • 2018-11-09
  • 2019-09-28
相关资源
最近更新 更多