忘记MySQL的root用户密码怎么办

在工作中,如果我们忘记了数据库的密码,那么我们该怎么办?其实方法很多,下面我们主要说一下如何修改宿主机上的MySQL以及Docker容器中的MySQL。

1. Docker容器中的MySQL

  1. 启动MySQL的容器

  2. 通过docker命令进入到容器中docker exec -it container_id /bin/bash

  3. 找到docker.cnf配置文件,大概在/etc/mysql/conf.d/目录下

  4. 打开docker.cnf文件,在最后一行后添加skip-grant-tables跳过用户权限验证

  5. 退出docker容器,然后重启容器docker restart container_id

  6. 再次进入到容器中,执行如下命令:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    1. 进入mysql控制台
    mysql
    2. 进入mysql数据库
    use mysql;
    3. 修改root用户密码
    MySQL5.7+:
    update user set authentication_string=password('newpwd') where user='root';
    MySQL5.6-:
    update user set password=password('newpwd') where user='root';
    4. 刷新权限
    flush privileges;
  7. 将docker.cnf中添加的那一行skip-grant-tables删除,退出docker容器,然后重启容器,搞定

2. 宿主机中的MySQL

  1. 找到my.ini配置文件,并在[mysqld]组下加入skip-grant-tables跳过用户权限验证
  2. 修改密码,同上步骤6
  3. 将my.ini文件中添加的那一行删除,重启MySQL服务service mysqld restart,搞定