docke容器构建mysql5.7踩过1045的坑

在构建mysql5.7成功之后,通过命令启动: docker run -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456\ --privileged=true \ -d mysql:5.7.22 但在容器内进行访问出现1045错误,无奈只能按照博主的方法进行解决了。。

我创建了个 mysql5.7 版本的 dokcer 容器取名 mysql ,但是我忘记了密码。


   
   
  1. # 进入容器
  2. docker exec -it mysql bash
  3. # 设置跳过权限表的加载
  4. # 警告:这就意味着任何用户都能登录进来,并进行任何操作,相当不安全。
  5. echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf
  6. # 退出容器
  7. exit
  8. # 重启容器
  9. docker restart mysql
  10. # 再次进入容器
  11. docker exec -it mysql bash
  12. # 登录 mysql(无需密码)
  13. mysql -uroot
  14. # 更新权限
  15. flush privileges;
  16. # 修改密码
  17. alter user 'root'@ 'localhost' identified by '123456';
  18. # 退出mysql
  19. exit
  20. # 替换掉刚才加的跳过权限表的加载参数
  21. sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf
  22. # 退出容器
  23. exit
  24. # 重启容器
  25. docker restart mysql

完成,现在可以用 root 和刚才设置的密码 登录

执行过程中出错了


   
   
  1. mysql> alter user 'root'@ '%' identified by '123456';
  2. ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

这个时候我们只需要 mysql> flush privileges ;

转载于:https://my.oschina.net/u/2322202/blog/3090119

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值