zoukankan      html  css  js  c++  java
  • 误删root用户,如何恢复

    误删root用户,如何恢复

    1.修改配置文件,获取权限登录
    root@localhost#vi /etc/my,cnf
    添加:skip-grant-tables
    root@localhost#systemctl restart mysqld
    2.登录创建root用户
    root@localhost#mysql
    mysql>use mysql;
    
     insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject='';
    3.更新root用户权限
    update user set Host=‘localhost’,select_priv=‘y’, insert_priv=‘y’,update_priv=‘y’,Alter_priv=‘y’,delete_priv=‘y’,create_priv=‘y’,drop_priv=‘y’,reload_priv=‘y’,shutdown_priv=‘y’,Process_priv=‘y’,file_priv=‘y’,grant_priv=‘y’,References_priv=‘y’,index_priv=‘y’,create_user_priv=‘y’,show_db_priv=‘y’,super_priv=‘y’,create_tmp_table_priv=‘y’,Lock_tables_priv=‘y’,execute_priv=‘y’,repl_slave_priv=‘y’,repl_client_priv=‘y’,create_view_priv=‘y’,show_view_priv=‘y’,create_routine_priv=‘y’,alter_routine_priv=‘y’,create_user_priv=‘y’ where user=‘root’;
    4.修改配置文件权限
    将1中的–skip-grant-tables删除
    root@localhost#systemctl restart mysqld
    root@localhost#mysql -uroot -p
    password: -----密码为空
    5.修改密码
    mysql>use mysql;
    使用命令更改root密码:
    UPDATE user SET Password=PASSWORD('root') where USER='root';
    刷新权限:
    FLUSH PRIVILEGES;
    然后退出,重新登录: 
    quit
    

    方法二:Python 脚本

    import pymysql
    import os
    #修改配置文件获取权限
    print("modify my.cnf skip grant tables.........")
    os.system("echo'-skip-grant-tables'>>/etc/my.cnf")
    k = os.system("systemctl restart mysqld")
    if k==0:
        pint("erro:",k)
    else:
        print("modify success!")
        #连接数据库
        db=pymysql.connect("127.0.0.1")
        cursor=db.cursor()
        cursor.execute("use mysql")
    
        #添加root用户并更新root权限
        SQL_SYN="insert into user(User,authentication_string,ssl_cipher x509_issuer x509_subject) values('root','','','','')"
        cursor.execute(SQL_SYN)
        SQL_SYN="update user set Host='%',select_priv='y', insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',create_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',show_view_priv='y',create_routine_priv='y',alter_routine_priv='y',create_user_priv='y' where user='root'"
        cursor.execute(SQL_SYN)
        db.close()
    
        #修改配置文件取消权限
        os.system("sed -i '/-skip-grant/d' /etc/my.cnf")
        print("modify my.cnf skip grant tables.........")
        k=os.system("systemctl restart mysqld")
        if k!=0:
            print("erro:",k)
        else:
            print("modify success!")
            db = pymysql.connect("127.0.0.1","root","","mysql")
            #修改密码
            SQL_SYN="alter user 'root'@'%' identified with mysql_native_password by 'Admin@123'"
            db.cursor(SQL_SYN)
            #权限设置
            SQL_SYN="grant all privileges on *.* to 'root'@'%'"
            db.cursor(SQL_SYN)
            db.close()
            print("root user adding success!! The password of 'root' is 'Admin@123'")
    
  • 相关阅读:
    数据库索引详解
    解决Eclipse中DDMS一直打印输出Connection attempts的问题
    发布一个关于SharePoint的管理小工具
    POJ 2895
    POJ 2909
    2020/6/9 [MRCTF2020]hello_world_go
    2020/5/31 [GKCTF2020]Chelly’s identity
    2020/5/30 [FlareOn6]Overlong
    2020/5/28 BUU_[WUSTCTF2020]level4
    2020/5/25 BUU_[WUSTCTF2020]level3
  • 原文地址:https://www.cnblogs.com/Afrafre/p/10834717.html
Copyright © 2011-2022 走看看