按照官方给我们的提示,再创建容器的时候就可以通过设置环境变量的方式来设置root密码。
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
容器创建后,通过修改环境变量来修改密码是无效的。因为密码已经持久化,存下来了就不会再读取环境变量了。
要进入容器内修改密码。
# 进入容器
docker exec -it some-mysql bash
# 进入mysql服务
mysql -u root -p
# 进入 mysql 数据库
use mysql;
# 修改密码
ALTER USER 'root'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
# 修改本地密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
# 退出
exit;
# 无需重启,密码已经生效
'root'@'%' 允许来自任何ip的连接,'root'@'localhost'允许本机的连接,