MySQL误删除用户怎么解决

前言:在不考虑到原来用户对关联数据库的授权问题的情况下,有以下两种思路解决

#1、安全模式修改

第一步:关闭数据库服务:
    [root@db01 ~]#/etc/init.d/mysqld stop
第二步:开启特殊启动模式:(关闭密码登录验证模块)
    [root@db01 ~]#mysqld_safe --skip-grant-tables --skip-networking &      
        (执行了这条命令,只能够在本地进行mysql登录操作)
    [root@db01 ~]#mysqld_safe --skip-grant-tables                             
        (执行了这条命令,远程和本地都能够进行mysql登录操作)
**********************************************************************
    # 命令及参数说明:
        mysqld_safe     进入安全检测模式
        --skip-grant-tables    关闭一表检查
        --skip-networking      关闭网络功能(关闭tcp/ip协议)    
**********************************************************************
第三步:登录数据库,创建用户
    登录数据库命令:mysql
    如果登录不进去的话,就直接使用ps -ef | grep mysql  查看上面第二步使用的后台执行进程号,使用kill 进程号把后台进程都杀死,再使用第二步里面的mysqld_safe --skip-grant-tables --skip-networking &  命令;最后执行mysql进行登录
        [root@db01 ~]#mysql
        mysql> user mysql;
        mysql> select user,host,password from mysql.user;
    说明:由于第二步我们已经关闭了用户验证功能;所以在这里使用create创建用户不行的;我们应该对user表进行添加数据就行了
        mysql> insert into(user,host,password) values('root','localhost',PASSWORD('test123'))
    根据报错提示:得到最终下面的创建用户的命令
        mysql> insert into user(user,host,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values('root','localhost',PASSWORD('test123'),'','','','');
第四步:测试是否设置成功
    No1:检查user表是否创建用户成功
        mysql> select user,host,password from user;
    No2:退出数据库,使用`kill+进程号` 杀死在后台执行的mysql进程
    No3:正常启动mysql服务: 
        [root@db01 ~]# /etc/init.d/mysqld stop
        [root@db01 ~]# /etc/init.d/mysqld start
    No4:使用我们刚才创建的用户名和密码登录
        [root@db01 ~]# mysql -uroot -ptest123      ----> 最终显示登录成功

#2、登录模式修改

说明:我给我们还没有退出数据库的话,直接重新创建用户名和主机域就行了(和上面忘记密码第二种方法思路一样)
请参考:https://www.cnblogs.com/l75790/p/12845827.html
原文地址:https://www.cnblogs.com/l75790/p/12845899.html