MySQL与docker访问被拒绝

时间:2020-07-08 11:53:27

标签: mysql database docker

我需要在docker上使用MySQL。我遵循的步骤:

  1. 已安装docker
  2. 拉出MySQL docker镜像
  3. MySQL的docker容器
  4. 已安装MySQL客户端。

但是当我运行这个

sudo docker exec -it mysql8 MySQL -uroot -p

它要求输入密码,我输入密码,然后输入密码:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password : Yes)

如何解决此问题,我想念什么? 我在这里遵循了教程: https://www.techrepublic.com/article/how-to-deploy-and-use-a-mysql-docker-container/

3 个答案:

答案 0 :(得分:2)

为了为mysql创建一个docker容器,您可以使用下面给出的命令。

docker run -e MYSQL_ROOT_PASSWORD=password -e MYSQL_USER=user -e MYSQL_PASSWORD=password -d -p 3308:3306 -v $HOME/docker/volumes/mysql:/var/lib/mysql mysql

您还可以在此给定命令中为mysql设置更多环境变量。

要访问此容器中的mysql,您有2种简单的方法:

  1. 使用docker exec -it container_name。然后将mysql -u root -p写入容器中,或者随您的意愿给出命令。

  2. 使用mysql客户端并从本地本身访问。

答案 1 :(得分:0)

您所关注的文章已经过时并且也在运行容器,在容器中工作时更改密码不是正确的方法。对于官方图片,您可以使用环境变量进行设置。

使用以下命令和更多详细信息,您可以在Mysql Docker hub上找到。

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mypass -d mysql

然后尝试连接

docker exec -it some-mysql bash -c "mysql -u root -pmypass"

答案 2 :(得分:0)

找到了答案。 必须运行

docker logs <container_name>

给出了生成的密码,在提示您输入密码时我们必须使用该密码。

然后,我们可以通过以下方式更改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
相关问题