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

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

  • docker创建的MySQL删除root账号处理方式
  • 版本信息
  • 解决方式
    • 1.进入容器里面
    • 2.编辑 vim /etc/mysql/my.cnf 文件
    • 3.在vim /etc/mysql/my.cnf文件中添加如下内容
    • 4.重启容器
    • 5.进入MySQL
    • 6.直接在user表中插入root用户
    • 7.修改密码
    • 8.修改密码验证方式
    • 9.删掉skip-grant-tables重启容器

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重启容器即可

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