文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql用户名root密码遗忘怎么办

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关mysql用户名root密码遗忘怎么办,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

    讲到用户了,就先说说mysql的用户权限吧.5.7开始,有了很多改变:
 
   
    1.用户长度变了.5.7.8以后的用户长度为32个字符,5.7.8以前的用户长度为16个字符,5.6我记得好像是8? 忘了.咳咳
    2. mysql_native_password插件默认启用,且password以后将慢慢移除.在mysql.user里面password字段已经木有了,转而通过plugin字段的加密算法将密码加密后的字符存储在authentication_string字段;
    3.5.7.4以后用户的密码可以设置有效期,在有效期到了之后,会要求重新设置密码;
    4.5.7.6开始,create和alter user可以锁定用户,锁定后,用户将不能访问mysql.如:ALTER USER 'jeffrey'@'localhost' ACCOUNT LOCK;
    5.5.7.5开始,mysql提供了ssl和RSA通信证书, auto_generate_certs和sha256_password_auto_generate_rsa_keys参数控制,但必须在启动之前设置;
    6.5.7的初始化与之前的比也有了变化.删除匿名用户,初始化的时候只保留了root@'localhost'和mysql.sys@'localhost'两个用户.且也没有了test这个库;
    7.5.7.8开始增加了一个super_read_only的参数, 目的是除了root用户的supper用户都设为只读;
    8.以前grant可以将没有的用户直接新增创建并赋权,在5.7默认模式(sql_mode)下,是不能通过grant来新增新用户,必须先create user之后在grant权限;
    
    
     参考官方手册:http://dev.mysql.com/doc/refman/5.7/en/security.html
    
    
     普通用户修改,就不细说了,登陆拥有super用户的直接如下语句修改:
     alter user user_name@'host' identified by 'password';
    
     主要说下root密码的修复,2种方法:
     1.常规方法:
       在启动的时候在my.cnf加上skip-grant-tables参数,或者启动选项--skip-grant-tables,然后进入mysql修改mysql密码,在重启mysql服务即可;网上这种帖子很多,不细说;
      
     2.黑科技(不停机修改):
       这种方法不推荐,但绝对好用,是跟某位大牛那学来的.
       mysql到目前5.7的mysql.user表都是myisam引擎(据说8.0以后就是innodb了).提到myisam引擎,大家都知道myisam的表的数据都是放在.MYD里面的.所以,黑科技来啦;
       1.进入data/mysql目录,复制user表的3个文件到另外的库,cp -a user* ../databasename1/
       2.需要有操作databasename1库中表权限的用户,连上databasename1库,直接更改root用户密码为空:update user set entication_string='' where user='root';  最后检查一下select user,host,entication_string from databasename1 where user='root';
       3.在将databasename1目录的user的3个文件覆盖原mysql库下面的文件. cp -a data/databasename1/user* data/mysql/
       4.这个时候还不能直接登录,因为修改用户密码后,需要flush privileges讲新密码刷进内存.我们已经没有super用户来flush了,而且也不能停机,这可怎么办??? 大招来了,kill -HUP pid,在操作系统执行该命令,注意pid是mysql的pid不是ppid,别把父进程给挂起了.具体HUP的功能,百度吧.不细说.
       到这就大功告成了,这个时候就可以用root以无密码状态登陆,在进去修改root的密码.ok.收工!
       这个方法的知识点:首先myisam是的数据是存储在文件里面的,而且是可以通过复制直接将表结构,数据,索引都copy利用,所以这也是一个安全隐患点,mysql目录的权限一定得控制好啊.其次就是kill -HUP pid 发起一个挂起信号,然后mysqld_safe会监控到挂起,就重新加载配置文件,对线上业务是没有任务影响的,不会出现闪断之类的情况出现. 

关于“mysql用户名root密码遗忘怎么办”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯