我需要在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/
答案 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种简单的方法:
使用docker exec -it container_name。然后将mysql -u root -p写入容器中,或者随您的意愿给出命令。
使用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';