Docker Mysqldb 忘记密码

在使用Docker部署Mysqldb时,有时我们会遇到忘记MySQL的root密码的情况。本文将介绍如何通过重置密码的方式来解决这个问题。

1. 停止MySQL容器

首先,我们需要停止正在运行的MySQL容器。可以使用以下命令停止容器:

docker stop <container_id>

2. 启动MySQL容器并重置密码

接下来,我们需要使用一个特殊的启动参数来启动MySQL容器,并重置root密码。使用以下命令启动容器:

docker run -d --name=mysql_reset_pwd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<new_password> mysql/mysql-server:latest --skip-grant-tables

上述命令中的new_password是你要设置的新密码。

运行上述命令后,容器将以“跳过授权表”的方式启动,允许我们在没有密码的情况下访问MySQL。

3. 连接到MySQL容器

接下来,我们需要连接到正在运行的MySQL容器。我们可以使用以下命令连接到容器:

docker exec -it mysql_reset_pwd mysql

4. 重置密码

连接到MySQL容器后,我们可以执行以下命令重置密码:

USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';

上述命令中的new_password是你要设置的新密码。

5. 更新权限表

执行以下命令更新权限表:

FLUSH PRIVILEGES;

6. 退出并重新启动MySQL容器

退出MySQL容器并重新启动MySQL容器,使新密码生效。可以使用以下命令退出容器:

EXIT;

然后使用以下命令重新启动MySQL容器:

docker restart <container_id>

总结

通过以上步骤,我们成功重置了MySQL的root密码。现在,你可以使用新密码来访问MySQL数据库了。

stateDiagram
    [*] --> Stop_Container
    Stop_Container --> Start_Container
    Start_Container --> Connect_Container
    Connect_Container --> Reset_Password
    Reset_Password --> Update_Privileges
    Update_Privileges --> Exit_Container
    Exit_Container --> Restart_Container
    Restart_Container --> [*]

希望本文对你解决Docker Mysqldb忘记密码的问题有所帮助!