• mysql.user表重置密码后出现表损坏问题


      首先是发现了mysql数据库无论输入什么密码,都会直接进入数据库,没有验证。接下来开始入坑:

      1  知道是因为my.ini文件中有    skip-grant-tables      可是当时不知道密码忘记了还是user表已经出现了异常,密码一直错误。

      2  第二步,修改密码,可是mysql版本是5.7,按照password无法修改密码。于是直接在可视乎里加了一个password列,噩梦出现,password倒是加上了,密码列也修改成功了。skip也删除了,mysql也进去了,可是就是无法使用数据库,必须让修改表密码,重置密码。

      3  密码每次重置,都会出现另外一个错误,表结构已经损坏,无法操作。这时候看到了要更新mysql可能可以解决问题,可是看网上更新都是需要密码的,这时候密码已经废了,彻底gg。

      4    还没gg,接下来继续把skip-grant-tables加上,数据库倒是能继续进去了,可是还是想做到只能密码进入,经历了数次循环测试之后终于决定删除user表。然后利用网上生成user表,还不行,某些东西不匹配,再次删除user表。

      5  终于,在这时候,看了这个,--secure-file-priv is set to NULL. Operations related to importing and export...   ,

        在无密码情况下,mysql_upgrade,直接更新数据库,数据表自动生成。

        而且其中建议不要将数据放在mysql的数据库中,自己新建数据库,防止数据库损坏修复时麻烦,就像以前文件不放在c盘一样。

      6  但是此时还有一个问题,就是更新后的数据表并没有权限,于是又有一个很全的博客,恢复mysql 中root 用户的所有权限  言简意赅,按照步骤一个字不用修改就完成了数据库实现user更新和修改。

      总结,数据表损坏,一,更新。 二 赋予权限,三,只通过密码,这时把 skip-grant-tables注释了

      

    #更新数据表,以及版本信息不对应
    mysql_upgrade  
    
    更改root权限
    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

      

  • 相关阅读:
    mysql日期默认值格式('0000-00-00')错误解决
    休闲一下-精华-IMDB评分8分左右影片400多部!
    开机动画流程
    SystemServer启动服务
    理解Android进程创建流程
    android开机动画启动流程
    Android系统的启动优化
    Android 系统启动(init,zygote)
    Zygote
    init
  • 原文地址:https://www.cnblogs.com/27floor/p/11335429.html
Copyright © 2020-2023  润新知