找回MySQL root密码的解决方案

以下的文章主要讲述的是在LINUX操作系统下装MySQL数据库之后,不小心把MySQL ROOT的密码弄丢或是在修改初始密码时,忘记了新的密码的实际解决方案,下面就是具体方案的描述,希望在你今后的学习中会有所帮助。

因为MySQL密码存储于数据库MySQL中的user表中所以只需要将我windows 2003下的MySQL中的user表拷贝过来覆盖掉就行了

 

在c:\MySQL\data\MySQL\(linux 则一般在/var/lib/MySQL/MySQL/)目录下有三个user表相关文件user.frm、user.MYD、user.MYI

 

user.frm //user表样式文件

 

user.MYD //user表数据文件

 

user.MYI //user表索引文件

 

为保险起见,三个都拷贝过来,不过其实如果之前在要恢复的那个MySQL上没有更改过表结构的话,只要拷贝user.MYD就行了

 

然后

  1. #. /etc/rc.d/init.d/MySQL stop  
  2. #. /etc/rc.d/init.d/MySQL start  
  3. #MySQL -u root -p XXXXXX 

 

 

好了,可以用windows 2003下MySQL密码登陆了

 

 

  1. MySQL>use MySQL  
  2. MySQL>update user set Password=PASSWORD('xxxxxx') where User='root'

 

 

这时候会出错,提示user表只有读权限

 

我分析了一下原因,只这样的,因为user.*文件的权限分配是windows 2003下的,在windows 2003下我ls -l一看权限是666

 

在linux下我一看,拷过来后权限变成了600(其实正常情况下600就行了,只不过这里的文件属主不是MySQL,拷过来后的属主变为了MySQL root,所以会出现权限不够,这时候如果你改成权限666则可以了,当然这样不好,没有解决问题的实质),在/var/lib/MySQL/MySQL/下ls -l看了一下

 

 

  1. #chown -R MySQL:MySQL user.*  
  2. #chmod 600 user.*  
  3. //OK,DONE 

 

重起一下MySQL

 

重新连接

 

  1. MySQL>use MySQL  
  2. MySQL>update user set Password=PASSWORD('xxxxxx') where User='root';  
  3. MySQL>FLUSH PRIVILEGES; 

 

有一点值得注意:如果你windows 下MySQL如果是默认配置的话,注意要还要执行

  1. MySQL>delete from user where User='';  
  2. MySQL>delete from user where Host='%';  
  3. MySQL>FLUSH PRIVILEGES; 

好了,到这里恢复密码过程就完成了

这个方法么就是有点局限性,你必须也具备另外的user表文件

 

其他还有几种方法

其它方法一(这个是网上流传较广的方法,MySQL中文参考手册上的)

 

1. 向MySQLd server 发送kill命令关掉MySQLd server(不是 kill -9),存放进程ID的文件通常在MySQL的数据库所在的目录中。

 

killall -TERM MySQLd

 

你必须是UNIX的MySQL root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作。

 

2. 使用`–skip-grant-tables’ 参数来启动 MySQLd。 (LINUX下/usr/bin/safe_MySQLd –skip-grant-tables , windows下c:\MySQL\bin\MySQLd –skip-grant-tables)

 

3. 然后无密码登录到MySQLd server ,

  1. >use MySQL  
  2. >update user set passwordpassword=password("new_pass") where user="root";  
  3. >flush privileges; 

 

你也可以这样做:

  1. `MySQLadmin -h hostname -u user password 'new password''。 

 

4. 载入权限表: `MySQLadmin -h hostname flush-privileges’ ,或者使用 SQL 命令`FLUSH PRIVILEGES’。

5.killall -TERM MySQLd

 

6.用新密码登陆

 

其它方法二

直接用十六进制编辑器编辑user.MYD文件

 

不过这个里面我要说明一点,我这里编辑的时候发现个问题,加密的密码串有些是连续存储的,有些的***两位被切开了,后两位存储在后面其他地方.这一点我还没想明白.还有注意一点就是编辑的是加密过的密码串,也就是说你还是需要另外有user表文件。这种方法和我最上面介绍的方法的区别在于,这种方法直接编辑linux下的user表文件,就不需要重新改文件属主和权限了

 

 【编辑推荐】

  1. MySQL语句优化的原则简述
  2. MySQL索引和查询优化的实际操作
  3. MySQL数据库内存调优实操
  4. MYSQL DELETE语法的实际操作与代码
  5. MySQL存储过程中的基本函数描述

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/267384.html<

(0)
运维的头像运维
上一篇2025-05-06 09:43
下一篇 2025-05-06 09:45

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注