我需要在Docker上使用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/
您所遵循的文章已被out,并且还在运行容器,当在容器中工作时,更改密码不是正确的方式。 在官方图像中,您可以使用环境变量进行设置。
使用下面的命令,您可以在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"
找到答案了。 我得跑了
docker logs <container_name>
它提供了一个生成的密码,当提示输入密码时,我们必须使用该密码。
之后,我们可以通过以下方式更改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';