zoukankan      html  css  js  c++  java
  • mysql5.6.38误删除root用户后的一系列问题及解决办法

    首先要知道,root@'localhost'是mysql自带的用户,我们用drop删除时,只是从mysql.user表里面删除了这个用户,从新加回来就行了。

    首次恢复

    1. 关闭当前mysql实例
    2.使用跳过认证的方式启动mysql实例

    # mysqld_safe --skip-grant-tables &

    3. 免密登录mysql

    这时可以免密进入mysql,而且这时的身份就是root。

    4.开始恢复

    mysql>use mysql 
    mysql> insert into user set user='root',ssl_cipher='',x509_issuer='',x509_subject=''; 
    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';commit;

    5、退出数据库,修改密码即可

    恢复以后的问题

    使用grant时,报错如下:

    mysql> grant all on *.* to root@'10.0.0.%' identified by '123456';
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    重新对root@'localhost'授权

    一开始以为是$basedir/的权限被人搞乱了,去看了一下,完全没有错误,所以猜测,是不是恢复root用户时,没有赋予root@'localhost'正确的权限。

    接下来就是恢复其正确的管理员权限:

    1停止mysql服务器。使用skip-grant-tables 登陆。

    2 手动修改用户的权限。使其可以设置权限。

    UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';

    3 刷新缓冲区

    FLUSH PRIVILEGES;

    4 然后你就可以使用

    GRANT ALL ON *.* TO 'root'@'localhost';

    5 可以使用如下命令产看用户权限

    select * from mysql.userG

    至此,应该可以正常使用grant命令了。



  • 相关阅读:
    文件权限---I
    python查看变量在内存中的地址
    Python3 基本数据类型
    print语法
    任务管理器启动项显示“没有可显示的启动项”如何解决?
    nginx 虚拟主机配置
    nginx 高级应用
    nginx 日志文件详解
    nginx 编译安装与配置使用
    python获取header脚本
  • 原文地址:https://www.cnblogs.com/Go-Spurs-Go/p/10508634.html
Copyright © 2011-2022 走看看