解决办法
方法一
1、停止MYSQL服务
开始->运行 cmd,在命令提示符窗口输入 net stop mysql
2、切换当前目录到mysql安装路径下的bin目录
如: cd C:mysql5bin
3、设定无密码登录
执行命令 mysqld-nt --skip-grant-tables
注意:1)确保当前目录是mysql的bin目录;2)如果提示'mysqld-nt' 不是内部或外部命令,也不是可运行的程序或批处理文件,请下载mysqld-nt.rar。
4、登录mysql
新开一个命令提示符窗口,切换当前目录到mysql的bin目录,输入 mysql -u root -p
空密码登录到mysql。
5、设置root的新密码
输入update mysql.user set password=PASSWORD("newpassword") where User="root";
6、刷新权限表并退出
输入flush privileges;quit;
7、结束mysqld-nt.exe进程
打开任务管理器,结束mysqld-nt.exe进程。
方法二
有可能你的系统没有 safe_mysqld 程序(比如我现在用的 ubuntu操作系统, apt-get安装的mysql) , 下面方法可以恢复
1. 停止mysqld;
/etc/init.d/mysql stop
(您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动;
代码如下 | 复制代码 |
mysqld --skip-grant-tables & |
3. 然后用空密码方式使用root用户登录 MySQL;
代码如下 | 复制代码 |
mysql -u root |
4. 修改root用户的密码;
代码如下 | 复制代码 |
mysql> update mysql.user set password=PASSWORD('newpassword') where User='root'; mysql> flush privileges; mysql> quit |
重新启动MySQL
/etc/init.d/mysql restart
就可以使用新密码 newpassword 登录了。
另外记录一下忘记mysql 密码的取回方法
如果 MySQL 正在运行,
首先杀之: killall -TERM mysqld(如果是windows,直接调出进程管理器,结束之)
以安全模式启动 MySQ:
代码如下 | 复制代码 |
/usr/bin/safe_mysqld --skip-grant-tables & (windows 下 mysql安装所以盘/mysql/bin/safe_mysqld --skip-grant-tables ) |
就可以不需要密码就进入 MySQL 了.
然后就是
代码如下 | 复制代码 |
>use mysql >update user set password=password("new_pass") where user="root"; >flush privileges; |
重新杀 MySQL,用正常方法启动 MySQL.
这个方法没尝试过大家可尝试一下
使用mysqladmin,这是前面声明的一个特例。
代码如下 | 复制代码 |
mysqladmin -u root -p password mypasswd |
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。把命令里的root改为你的用户名,你就可以改你自己的密码了。