日期:2014-05-16  浏览次数:20861 次

在vps主机上找回mysql服务器root密码
概述: 最近有个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/mysql

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 -uroot
mysql>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密码。