教你如何将MySQL数据库的密码恢复

怀孕的老爸

怀孕的老爸

2016-01-29 14:53

教你如何将MySQL数据库的密码恢复,教你如何将MySQL数据库的密码恢复

因为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密码登陆了

mysqluse mysqlmysqlupdate 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看了一下

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/mysql/)

#chown -R mysql:mysql user.*#chmod 600 user.*

//OK,DONE

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/mysql/)

重起一下MYSQL

重新连接

mysqluse mysqlmysqlupdate user set Password=PASSWORD('xxxxxx') where User='root';mysqlFLUSH PRIVILEGES;

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

mysqldelete from user where User=''; mysqldelete from user where Host='%'; mysqlFLUSH PRIVILEGES;

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

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

其他还有几种方法

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

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

展开更多 50%)
分享

猜你喜欢

教你如何将MySQL数据库的密码恢复

MySQL mysql数据库
教你如何将MySQL数据库的密码恢复

MySQL数据库密码的恢复与重设

编程语言 网络编程
MySQL数据库密码的恢复与重设

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

将mysql数据导入access数据库

编程语言 网络编程
将mysql数据导入access数据库

MySQL数据库备份与恢复

编程语言 网络编程
MySQL数据库备份与恢复

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

MySQL忘记密码恢复密码的实现方法

编程语言 网络编程
MySQL忘记密码恢复密码的实现方法

如何将图片存到数据库中?

SQLServer
如何将图片存到数据库中?

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

六大步保护MySQL数据库中重要数据

六大步保护MySQL数据库中重要数据

Oracle中如何直接运行OS命令(下)

Oracle中如何直接运行OS命令(下)
下拉加载更多内容 ↓