MySQL数据库的密码恢复_MySQL数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

MySQL数据库数据库的密码恢复

作者:黑客防线网安MYSQL维护基地 来源:黑客防线网安MYSQL维护基地 浏览次数:0

本篇关键词:恢复密码文件user
黑客防线网安网讯:  在LINUX下装了MYSQL,刚装完的时候把ROOT空密码改了,当时也改了个好记的密码,没想到过了一个小时就忘记了,于是有了这篇恢复密码过程笔记。  因为MySQL密码存储于数据库mysql中的use...

  在LINUX下装了MYSQL刚装完的时候把ROOT空密码改了当时也改了个好记的密码,没想到过了一个小时就忘记了,于是有了这篇恢复密码过程笔记

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

  在c:mysqldatamysql(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;

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-7933-1.html
网站维护教程更新时间:2012-03-20 04:46:50  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer