- Published on
通过Docker重置MySQL密码
当我们在使用Docker运行MySQL时,有时会忘记root用户的密码。本文将介绍一种无需破坏数据即可重置密码的方法。
步骤1:停止正在运行的MySQL容器
首先,我们需要停止当前正在运行的MySQL容器:
docker stop docker-mysql-1
步骤2:使用临时容器重置密码
接下来,我们创建一个临时的MySQL容器,它将挂载原容器的数据卷,并跳过权限验证:
docker run -d --name mysql-reset --volumes-from docker-mysql-1 mysql:8.0.39 mysqld --skip-grant-tables
sleep 10
步骤3:重置密码为空
现在我们可以连接到临时容器并将root用户的密码重置为空:
docker exec -it mysql-reset mysql -u root -e "USE mysql; FLUSH PRIVILEGES; ALTER USER 'root'@'%' IDENTIFIED BY '';"
步骤4:清理临时容器
完成密码重置后,停止并删除临时容器:
docker stop mysql-reset
docker rm mysql-reset
步骤5:重新启动MySQL服务
现在可以重新启动原来的MySQL容器了:
docker start docker-mysql-1
sleep 10
步骤6:测试连接并设置新密码
验证我们现在可以使用空密码连接到MySQL:
docker exec -it docker-mysql-1 mysql -u root -e "SELECT 1;" && echo "✅ 现在可以使用空密码连接"
最后,设置一个新的安全密码:
docker exec -it docker-mysql-1 mysql -u root -e "ALTER USER 'root'@'%' IDENTIFIED BY 'infini_rag_flow';"
通过以上步骤,我们就成功地重置了Docker中MySQL的密码,而不会丢失任何数据。
THE END