误删root用户,如何恢复

误删root用户,如何恢复

1.修改配置文件,获取权限登录
[email protected]#vi /etc/my,cnf
添加:skip-grant-tables
[email protected]#systemctl restart mysqld
2.登录创建root用户
[email protected]#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删除
[email protected]#systemctl restart mysqld
[email protected]#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 '[email protected]'"
        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 '[email protected]'")

原文地址:https://www.cnblogs.com/Afrafre/p/10834717.html

时间: 2024-08-19 05:41:24

误删root用户,如何恢复的相关文章

mysql误删root用户恢复方案

linux下误删mysql的root用户,解决方法 开始对liunx界面不熟悉,可能由于不小心,把root误删了,怎么办? 1. # killall mysqld    干掉所有mysql进程 2. # mysqld_safe --skip-grant-tables &   进入mysql安全模式 3. 通过上一步进入mysql的console(控制台),输入:mysql -p 以root用户进入系统,因为root用户是默认存在的,前面我们误删的只是mysql表了的. 4. 提示,Enter p

Centos6.6系统root用户密码恢复案例(转)

原文:http://www.centoscn.com/CentOS/Intermediate/2015/0131/4604.html 通过单用户模式恢复root用户密码 重新启动主机后,在出现Grub菜单时按上下键取消倒计时 进入到内核引导界面按e键如下所示: 将鼠标定位到Kernel这一行按e键 在行尾输入”single”也可以换成字母”s”或者数字”1”都表示进入单用户模式,然后回车. 按b键将系统引导进入单用户模式,不需要密码即直接进入shell环境. 在单用户下,直接运行”passwd 

mysql数据库,删除root用户后恢复

删除mysql的user表中的root用户后,我们可以用以下命令来实现恢复: 启动mysql数据库的安全模式,有2种方法 1.修改配置文件/etc/my.cf,添加 --skip-grant-tables 2.使用命令进入安全模式, 首先,要先关闭mysql服务  service mysqld stop 进入安全模式    mysqld_safe --skip-grant-tables 3.添加use表内容,如下: mysql> insert into user set ser='root',s

mysql误删root后如何恢复root账户

系统:CentOS release 6.5 (Final)内核:2.6.32-431.el6.x86_64MySQL版本:5.5.28-log Source distribution操作步骤:1.停止mysql服务#service mysqld stop2.以安全模式进入mysql#mysqld_safe --skip-grant-tables &#mysql -u root -p \此时密码为空3.重建rootmysql>USE mysql;mysql>INSERT INTO use

mysql误删root用户

在操作mysql时误删除root用户,如何进行恢复 在安装hive时候误删除root用户,存在的用户没有权限,解决方法如下. 1.首先在/etc/my.cnf文件中 mysqlID下面添加 skip-grant-tables 用来跳过安全密码验证 2.在服务上重启mysql服务 [root@master2 bin]# systemctl restart mysqld.service 3.使用mysql直接进入mysql [root@master2 bin]# mysql 4.使用mysql数据库

Centos6.6系统root用户密码恢复案例

1.重新启动主机后,在出现Grub菜单时按上下键取消倒计时 2.进入到内核引导界面按e键如下所示: 3.将鼠标定位到Kernel这一行按e键 4.在行尾输入"single"也可以换成字母"s"或者数字"1"都表示进入单用户模式,然后回车. 5.按b键将系统引导进入单用户模式,不需要密码即直接进入shell环境. 6.在单用户下,直接运行"passwd root"命令重新设置root用户密码即可!(或者直接修改/etc/shad

误删/root/下配置文件恢复方法

默认情况下/root/用户下有如下配置文件: [[email protected] ~]# ls -a .  ..  .bash_history  .bash_logout  .bash_profile  .bashrc 如果误删除.bash_history .bash_logout .bash_profile .bashrc等配置文件的话, [[email protected] ~]# rm -rf \.b* [[email protected] ~]# ls -a .  .. [[email

点滴记录——Linux Mysql数据库误删root用户

转载请说明出处:http://blog.csdn.net/cywosp/article/details/42145779 在Linux中有时安装Mysql会出现没有root用户的状况,或者说root账户被从mysql.user表中误删除,这样就导致很多权限无法控制.解决办法是重新创建root用户,并授予所有权限,具体方法如下: 1. 修改/etc/my.conf文件,添加skip-grant-tables [mysqld] datadir=/var/lib/mysql socket=/var/l

在linux中操作mysql误删root用户的应对方法

1.停止数据库[[email protected] ~]# /etc/init.d/mysqld stop 2.跳过授权表启动mysql[[email protected] ~]# mysqld_safe --skip-grant-tables --skip-networking & 3.尝试创建用户mysql> create user [email protected]'localhost' identified by '123';ERROR 1290 (HY000): The MySQL