今天在使用mysql:5.7的docker镜像时发现在启动容器后使用root用户无法登录。步骤如下:
1、拉取mysql5.7镜像
$docker pull mysql:5.7
2、创建一个网桥
$docker network create -d bridge blog_network
3、运行mysql 容器
docker container run -it --rm --name mysql --network blog_network -v $PWD/data/myscript/:/docker-entrypoint-initdb.d/ --env MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
4、进入容器
$docker exec -it mysql bash
#mysql -u root -p
使用步骤3 设置的密码123456 返回结果为:
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
5、解决办法如下
第2步运行容器命令修改如下:
$ docker container run -it --detach --name mysql --network blog_network -p 3306:3306 -v $PWD/data/myscript/:/docker-entrypoint-initdb.d/ --env MYSQL_RANDOM_ROOT_PASSWORD=yes mysql:5.7
$ docker container logs mysql| grep 'GENERATED ROOT PASSWORD: ' | awk -F': ' '{print $2}'
会返回一串字符串,这个就是我们的root用户的实际密码:使用这个密码登录后再修改root用户密码即可。
ooli0OhMoo1Ieg1CeiYieSohleeVi1oh
$mysql -u root -p
使用上面的密码进入mysql之后就是修改密码了。
mysql>update mysql.user set authentication_string=password('newpassword') where user='root' ;
mysql>flush privileges;
mysql>exit
Bye
如图:

本文详细记录了在使用Docker镜像部署MySQL 5.7时遇到的root用户登录失败问题,并提供了解决方案。通过调整容器启动参数,获取随机生成的root密码,成功登录并修改密码。
537

被折叠的 条评论
为什么被折叠?



