图文详解linux/windows mysql忘记root密码解决方案

经常有用户过来咨询说自己的mysql服务器忘记密码了怎么办,为了更好的解决大家的困扰,本文特归档整理了windows和linux系统下,mysql忘记密码的解决方案。本文内容是我亲测实用,当然过程中踩过的坑我也会在本文中一并分享交流。废话不多说,上菜~


Windows篇


演示环境:

 

服务器:windows2003 64位企业版

mysql版本:5.6.17

 

操作步骤:

 

1. 关闭mysql服务。

 

以管理员身份登录到您的服务器系统,如果服务器上的Mysql正在运行,则先停止MySQL服务。对于Windows服务器,先转到“服务”管理器:从“ 开始”菜单中选择“ 设置--控制面板”,然后 选择“管理工具”,然后选择“服务”。在列表中找到MySQL服务并停止它。

如果你使用的是组合包软件,通常软件中应该内置了一键关闭mysql服务的按钮。

 

 

2. 运行CMD命令切换到MySql的bin目录,执行mysqld --skip-grant-tables(注意后面没有分号)

 

 

3. 此命令行窗口不要关闭,再重新打开一个新的命令行窗口。注意,这时有时会出现一个警告,不要理会即可。

 


4. 再次打开一个cmd新窗口。按上面方法运行至bin目录下,运行命令:mysql -u root  -p,提示输入密码,直接回车即可

 

 

5.连接权限数据库,这一步不能少,否则会掉坑里的。

 

>use mysql;

 

根据我数遍的亲测,如果少了这一步,会出现mysql无法启动,意外终止的结果。如下图

 

注:如果你不幸已掉坑里,可以参考这里我亲测有效的解决方案:http://www.chanzhi.org/thread/1441.html


6. 执行修改密码命令,(这里我将密码修改为123456)。

 

 

update mysql.user set password=PASSWORD('123456') where User='root';

 

7. 刷新执行:

 

 

mysql> flush privileges;

 

8. 关闭窗口,注销系统再进入,开启mysql服务,重新登录。

 

 


Linux篇


演示环境:

 

服务器:CentOS6.5 64位版
mysql版本:5.7.9

 

操作步骤:


1. KILL掉系统里的MySQL进程;

 

killall -TERM mysqld


2. 用以下命令启动MySQL,以不检查权限的方式启动;

 

mysqld --skip-grant-tables &


3. 然后用空密码方式使用root用户登录 MySQL;

 

mysql -u root

 

4. 修改root用户的密码,这里我改为123456;

 

update mysql.user set authentication_string=password('123456') where user='root' ;

 

你可能会有疑问,上面命令中的“authentication_string”字段是什么。注意我这里安装的mysql版本是5.7。起初我是用下面的命令进行修改密码操作的,但是反馈给我一个错误提示,如图所示。

 

mysql> update mysql.user set password=PASSWORD('123456') where User='root';

 

 

网上查了下资料才知道,原来mysql5.7数据库下已经没有password这个字段了。password字段改成了authentication_string。如果大家在具体操作时,根据自己的mysql版本做相应的命令调整即可。

 

5.刷新执行。

 

mysql> flush privileges;
mysql> quit

 

6.重新启动MySQL,就可以使用新密码登录了。

 

 

小结:

本文和大家一起分享了Windows和linux服务器下,mysql服务root账户密码的修改解决方案。如果大家在实际操作中有其他问题,或者您有更好的解决方案,欢迎和大家一起分享交流。我们共同学习,共同交流,共同进步。经常有用户过来咨询说自己的mysql服务器忘记密码了怎么办,为了更好的解决大家的困扰,本文特归档整理了windows和linux系统下,mysql忘记密码的解决方案。本文内容是我亲测实用,当然过程中踩过的坑我也会在本文中一并分享交流。废话不多说,上菜~


Windows篇


演示环境:

 

服务器:windows2003 64位企业版

mysql版本:5.6.17

 

操作步骤:

 

1. 关闭mysql服务。

 

以管理员身份登录到您的服务器系统,如果服务器上的Mysql正在运行,则先停止MySQL服务。对于Windows服务器,先转到“服务”管理器:从“ 开始”菜单中选择“ 设置--控制面板”,然后 选择“管理工具”,然后选择“服务”。在列表中找到MySQL服务并停止它。

如果你使用的是组合包软件,通常软件中应该内置了一键关闭mysql服务的按钮。

 

 

2. 运行CMD命令切换到MySql的bin目录,执行mysqld --skip-grant-tables(注意后面没有分号)

 

 

3. 此命令行窗口不要关闭,再重新打开一个新的命令行窗口。注意,这时有时会出现一个警告,不要理会即可。

 


4. 再次打开一个cmd新窗口。按上面方法运行至bin目录下,运行命令:mysql -u root  -p,提示输入密码,直接回车即可

 

 

5.连接权限数据库,这一步不能少,否则会掉坑里的。

 

>use mysql;

 

根据我数遍的亲测,如果少了这一步,会出现mysql无法启动,意外终止的结果。如下图

 

注:如果你不幸已掉坑里,可以参考这里我亲测有效的解决方案:http://www.chanzhi.org/thread/1441.html


6. 执行修改密码命令,(这里我将密码修改为123456)。

 

 

update mysql.user set password=PASSWORD('123456') where User='root';

 

7. 刷新执行:

 

 

mysql> flush privileges;

 

8. 关闭窗口,注销系统再进入,开启mysql服务,重新登录。

 

 


Linux篇


演示环境:

 

服务器:CentOS6.5 64位版
mysql版本:5.7.9

 

操作步骤:


1. KILL掉系统里的MySQL进程;

 

killall -TERM mysqld


2. 用以下命令启动MySQL,以不检查权限的方式启动;

 

mysqld --skip-grant-tables &


3. 然后用空密码方式使用root用户登录 MySQL;

 

mysql -u root

 

4. 修改root用户的密码,这里我改为123456;

 

update mysql.user set authentication_string=password('123456') where user='root' ;

 

你可能会有疑问,上面命令中的“authentication_string”字段是什么。注意我这里安装的mysql版本是5.7。起初我是用下面的命令进行修改密码操作的,但是反馈给我一个错误提示,如图所示。

 

mysql> update mysql.user set password=PASSWORD('123456') where User='root';

 

 

网上查了下资料才知道,原来mysql5.7数据库下已经没有password这个字段了。password字段改成了authentication_string。如果大家在具体操作时,根据自己的mysql版本做相应的命令调整即可。

 

5.刷新执行。

 

mysql> flush privileges;
mysql> quit

 

6.重新启动MySQL,就可以使用新密码登录了。

 

 

小结:

本文和大家一起分享了Windows和linux服务器下,mysql服务root账户密码的修改解决方案。如果大家在实际操作中有其他问题,或者您有更好的解决方案,欢迎和大家一起分享交流。我们共同学习,共同交流,共同进步。

猜你喜欢

转载自gavinhsueh.iteye.com/blog/2399035