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

本文详细介绍了如何在Docker容器中通过编辑MySQL配置文件跳过权限控制,然后登录MySQL并修改root用户的密码。这个过程涉及了MySQL的安全设置,包括临时启用无密码登录、更新权限、设置新密码以及移除跳过权限的配置,最后重启容器以应用更改。请注意,跳过权限控制会带来安全隐患。
摘要由CSDN通过智能技术生成
  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}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值