docker创建的MySQL删除root账号处理方式

docker创建的MySQL删除root账号处理方式

版本信息

MySQL8.0.24

解决方式

如果是删除了root账号的话,是一个比较麻烦的事情,不同版本可能有不同的解决方式,但是此种方式是我亲自实验过的,可以借鉴参考

1.进入容器里面

docker  exec  -it  容器id /bin/bash

2.编辑 vim /etc/mysql/my.cnf 文件

此文件不管有没有编辑就对了

3.在vim /etc/mysql/my.cnf文件中添加如下内容

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL
skip-grant-tables

skip-grant-tables 是跳过权限验证的,这个东西一定要加上

4.重启容器

加上上面的内容重启容器进入容器再进入MySQL的时候可能会报错,根据提示的信息可能会说没有/var/run/mysqld/mysqld.sock路径,注释掉
socket = /var/run/mysqld/mysqld.sock这一行就行了

5.进入MySQL

进入容器输入MySQL即可进入MySQL

6.直接在user表中插入root用户

use mysql;
insert into mysql.user(Host,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Reload_priv,Shutdown_priv,Process_priv,File_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Show_db_priv,Super_priv,Execute_priv,Create_view_priv,Show_view_priv,ssl_cipher,x509_issuer,x509_subject) values ('%','root',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y',
'Y','0x','0x','0x');

如果插入失败先 flush privileges;再插入
插入成功再flush privileges;

7.修改密码

SET PASSWORD FOR 'root'@'%' = '123456(这里改成自己的密码)';
flush privileges;

8.修改密码验证方式

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
flush privileges;

9.删掉skip-grant-tables重启容器

删掉skip-grant-tables重启容器即可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lnwd___

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值