Dec 30

恢复mysql管理员密码 雨

linuxing , 17:33 , 数据库 » Mysql , 评论(0) , 引用(0) , 阅读(14559) , Via 本站原创 | |
 今日一个错手,把mysql里面user表中的root密码列改错了。里面有大量的数据,不可能重装啊。从网上找了些资料,发现恢复mysql的密码不难。
一、覆盖
 因为Mysql密码存储于数据库mysql中的user表中,所以我们只要用已知密码的user表拷贝过来覆盖就行了。
红旗DC Server 4.1在/var/lib/mysql/mysql/目录下有三个user表相关文件user.frm、user.MYD、user.MYI。它们分别表示:
引用
user.frm  //user表样式文件
user.MYD //user表数据文件
user.MYI  //user表索引文件

 先备份一下就的文件,防止改错。然后把已经知道密码的mysql库中user表的三个文件拷贝过来。这时我们只要重启mysql服务就可以用已知的密码来访问Mysql数据库了。
service mysql restart
 
 现在我们可以用已知密码的来访问Mysql数据库了。
二、官方的方法
 如果临时找不到已有的User表文件,那只能用官方的方法来做了。
1、向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录/var/lib/mysql中。
# killall -TERM mysqld

2、使用--skip-grant-tables参数来启动 mysqld。
# /usr/bin/safe_mysqld --skip-grant-tables

路径不一定都一样,可以用locate找一下。
3、然后就可以无密码登录到mysqld server ,此时Mysql的密码和刚安装时一样,都是为空。现在我们可以使用mysqladmin来改变mysql的密码了。
#mysqladmin -u root -p password newpassword

4、载入权限表,使用下面的命令
# mysqladmin flush-privileges

5、使用新密码登陆即可
 官方的方法有个好处,就是不会影响其他用户的权限。
Tags: ,
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]