随手记:CentOS7 下 Docker 中的 MySQL5.7 重置 root 密码

  1.  进入容器

    docker exec -it {容器ID} /bin/bash
  2. 调整MySQL配置文件,设置跳过权限控制

    ## 警告:这就意味着任何用户都能登录进来,并进行任何操作,相当不安全。
    
    echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf
  3. 退出容器
    exit
  4. 重启容器

    docker restart {容器ID}
  5. 再次进入容器

    docker exec -it {容器ID} /bin/bash
  6. 登录 mysql(无需密码)

    mysql -uroot
  7. 更新权限

    flush privileges;
  8. 修改密码

    ## 这里用到的 Host值,指 user 表中的 User 字段为 root 的条目的 Host 字段的值,一般是localhost或%
    
    alter user 'root'@'{Host值}' identified by '{新的密码}';
    
    ## 如果不执行上一步更新权限的话,在修改密码时就会报错
    ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
  9. 退出mysql

    exit
  10. 替换掉刚才加的跳过权限控制的语句

    sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf
  11. 退出容器

    exit
  12. 重启容器

    docker restart {容器ID}

你可能感兴趣的:(笔记,docker,mysql,linux)