【转】mysql忘记root密码的解决方法

本文收集于本人的笔记本,由于找不到原文出处。在此省略,如哪位知道可以联系我加上。

方法一:
在windows下:
1.打开命令行(DOS)窗口,停止mysql服务: 

net stop mysql

2.在DOS下面进入mysql的安装路径下的 bin目录,如 D:mysqlin

3. 输入并执行命令: 

mysqld-nt --skip-grant-tables

   (此命令执行后该窗口就停住了)

4.另外打开一个命令行窗口,执行mysql

>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit

例如:

打开命令行窗口

cd D:MySQLin
D:MySQLin>mysqld-nt -- skip-grant-tables

另外打开一个命令行窗口,执行mysql

>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit

方法二:

windows下忘记mysql超级管理员root密码的解决办法
1,停止MYSQL服务,CMD打开DOS窗口,输入

net stop mysql

2,在CMD命令行窗口,进入MySQL安装目录 比如 

cd d:MySQLin

3,跳过mysql权限检查表,即当mysql起来后,不用输入密码就能进入数据库。

命令为: 

mysqld -nt --skip-grant-tables

4,重新打开一个CMD命令行窗口,输入

mysql -uroot -p

,使用空密码的方式登录MySQL(不用输入密码,直接按回车)

5,输入以下命令开始修改root用户的密码

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

6,刷新权限表

mysql> flush privileges;

7,退出

mysql> quit

 

解决MySQL的客户端不支持鉴定协议
MySQL 5.1采用了基于密码混编算法的鉴定协议,它与早期客户端(4.1之前)使用的协议不兼容。如果你将服务器升级到4.1之上,用早期的客户端进行连接可能失败,并给出下述消息:
以下为引用的内容:
shell> mysql

客户端不支持服务器请求的鉴定协议:请考虑升级MySQL客户端。
要想解决该问题,应使用下述方法之一:
·升级所有的客户端程序,以使用4.1.1或更新的客户端库。
·用4.1版之前的客户端连接到服务器时,请使用仍具有4.1版之前风格密码的账户。
·对于需要使用4.1版之前的客户端的每位用户,将密码恢复为4.1版之前的风格。可以使用SET PASSWORD语句和OLD_PASSWORD()函数完成该任务:
以下为引用的内容:
·mysql> SET PASSWORD FOR
·-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
也可以使用UPDATE和FLUSH PRIVILEGES:
mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;