网站建设  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

当前位置:首页>>数 据 库>>MySQL>>正文
注:打开慢时请稍等

MySQL密码恢复笔记

  日期:2007-3-19 13:15:17  来源:iyit.net  点击:
参加讨论】前言:在LINUX下装了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就行了
然后#. /etc/rc.d/init.d/mysql stop
#. /etc/rc.d/init.d/mysql start
#mysql -u root -p XXXXXX
好了,可以用windows 2003下mysql密码登陆了
mysql>use mysql
mysql>update user set Password=PASSWORD(’xxxxxx’) where User=’root’;
这时候会出错,提示user表只有读权限
我分析了一下原因,只这样的,因为user.*文件的权限分配是windows 2003下的,在windows 2003下我ls -l一看权限是666
在linux下我一看,拷过来后权限变成了600(其实正常情况下600就行了,只不过这里的文件属主不是mysql,拷过来后的属主变为了root,所以会出现权限不够,这时候如果你改成权限666则可以了,当然这样不好,没有解决问题的实质),在/var/lib/mysql/mysql/下ls -l看了一下

#chown -R mysql:mysql user.*
#chmod 600 user.*
//OK,DONE
重起一下MYSQL
重新连接
mysql>use mysql
mysql>update user set Password=PASSWORD(’xxxxxx’) where User=’root’;
mysql>FLUSH PRIVILEGES;
有一点值得注意:如果你windows 下mysql如果是默认配置的话,注意要还要执行
mysql>delete from user where User=’’; 
mysql>delete from user where Host=’%’; 
mysql>FLUSH PRIVILEGES;
好了,到这里恢复密码过程就完成了
这个方法么就是有点局限性,你必须也具备另外的user表文件

其他还有几种方法
其它方法一(这个是网上流传较广的方法,mysql中文参考手册上的)
1. 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。 
killall -TERM mysqld
你必须是UNIX的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 ,
>use mysql 
>update user set password=password("new_pass") where user="root"; 
>flush privileges; 
。你也可以这样做:`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表文件,就不需要重新改文件属主和权限了

本新闻共2页,当前在第1页  1  2  


编辑:iyit.net [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:MySQL数据库中的安全解决方案
下一篇:没有了
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
SQL查询语句精华使用简要 Sql server使用内存限定在多少最为合适 50种方法巧妙优化你的SQL Server数据库
MY SQL常用命令 如何远程连接SQL Server数据库 教你如何使用SQL Server来过滤数据
SQLServer和Access、Excel数据传输总结 SQL Server--全文本检索的应用 如何在SQL Server中快速删除重复记录
SQL Server连接失败错误分析与排除 探讨SQL Server 2005.NET CLR编程 SQL Server2005的XML数据类型之基础篇
PHP接受SqlServer存储过程的返回值问题 php+sqlserver分页最简单方法 SQLServer2005:SQLCLR代码之CLR安全
 一个用Wsh来控制SqlServer的Dcom的VBs .Net下调用SqlServer2k中存储过程 用asp.net还原与恢复sqlserver数据库
模拟SQLSERVER的两个函数:dateadd(),d PHP利用COM对象访问SQLServer、Access Php+SqlServer实现分页显示
模拟SQLSERVER的两个函数:dateadd(),d asp + sqlserver 分页方法(不用存储过 ASP和SQLServer时间处理方法Ⅰ
最新更新 热点排行 推荐新闻
MySQL密码恢复笔记
MySQL数据库中的安全解决方案 
你的MySQL安全了吗?加铸23道安全门 
MS SQL可写脚本和编程的扩展SSIS包
MySQL将为数据库管理员减负 
MySQL密码恢复笔记
SQL查询语句精华使用简要
Sql server使用内存限定在多少最为合适
姓名域名蹿红网络 时尚礼物新体验 
中文域名力助企业营销 品牌保护与推广
meta标签使用详解 
CN域名全民体验 中国力量冲击互联网 
中文.HK域名发布会在港举行 
《策划》催生热门词汇 除夕夜域名抢注
中文.hk香港域名 将于近日全面开放 
MySQL密码恢复笔记
最新网络游戏:六款网游大作本周开启测
77条Windows Vista特性总结
精典悬浮div代码,拖动 隐藏显示效果
在ASP与ASP.NET之间共享对话状态(2)
多种网页弹出窗口代码 防拦截弹出窗口
QQ2007 Beta1(兼容 Windows Vista) 
游戏商称90%的游戏与Vista不兼容,Vis
微软Vista日本遇麻烦 网银电邮无法使用
熊猫烧香幕后黑手是流氓软件?
韩国素材光盘(FLASH导航条) 韩国素材
MySQL密码恢复笔记
MySQL数据库中的安全解决方案 
你的MySQL安全了吗?加铸23道安全门 
在MySQL数据库增加新用户权限简介
在win2003下MySQL数据库每天自动备份
MySQL密码恢复笔记
SQL查询语句精华使用简要
Sql server使用内存限定在多少最为合适
meta标签使用详解 
Vista被破解 一个小程序可成功激活
熊猫烧香案主犯编出杀毒程序 警方将公
情人节病毒将发作 专家建议用户防范
win32与win64的操作系统的区别是什么?
QQ2007 Beta1(兼容 Windows Vista) 
AJAX留言本--简易版 源码下载

设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2007 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息