在vps主机上找回mysql服务器root密码

二月 27, 2010 by · Leave a Comment 

概述: 最近有个vps客户,在配置LAMP的时候,修改了mysql服务器root密码,过几天忘了密码,问我如何才能找回来,下面我就详细讲讲如何找回root密码,分两种情况,一种mysql数据库资料不是很重要,可以删除,另外一种适合mysql服务器里面有重要的数据,不能初始化。
环境: linux vps主机 centos5 操作系统 使用yum安装的数据库,当然此解决办法同样适合其他linux发行版本
步骤:
1、mysql数据库资料不是很重要,找回root方法

1.1关闭mysqld服务
/etc/init.d/mysqld stop

1.2删除/var/lib/mysql整个目录
rm -rf /var/lib/

1.3重新启动mysqld服务,mysql数据库会重建,您的root 就没有密码了
/etc/init.d/mysqld start

特别提醒:此方法仅适合您的数据库并不重要的时候,如何数据库很重要,那千万不要随便删除,请使用第二种方法
2、mysql数据库资料有很重要的资料,找回root方法
2.1关闭mysql服务
/etc/init.d/mysqld stop

2.2使用–skip-grant-tables选项启动MySQL服务,可以修改/etc/inin.d/mysqld脚本启动位置增加此选项,
vi /etc/init.d/mysqld在运行启动的语句里增加–skip-grant-tables

–skip-grant-tables的意思是启动MySQL服务的时候跳过权限表认证。启动后,连接到MySQL的root不需要口令
2.3重新启动mysql服务
/etc/init.d/mysqld stop

2.4使用空密码的root用户连接MySQL ,并且更改root口令
mysql -urootmysql>use mysql;  < –使用mysql数据库mysql>update user set password=password('123') where user='root' and host='localhost';  < –更改密码语句mysql>set password=password('123'); < –使用此语句更改密码会失败,使用上面语句直接更新user表 password字段后更改密码成功

2.5关闭mysql服务 /etc/init.d/mysqld stop

2.6重新修改2.2步骤修改的/etc/init.d/mysqld,使其保持原来不变,也就是取消skip-grant-tables语句
2.7重新启动mysql服务
/etc/init.d/mysqld stop

经过上面7步骤,就可以找回丢失的root密码。

About admin

注意:

1、本站启用了审核机制,你的留言可能稍后才会显示,请不要重复提交,谢谢。
2、留言时的头像是Gravatar提供的服务。想设置的看这里
3、评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。

To submit your comment, click the image below where it asks you to...
Clickcha - The One-Click Captcha