解决方法如下:
让mysql不载入权限表,命令:mysqld --skip-grant-tables(windows)、mysqld_safe --skip-grant-tables user=mysql或者
/etc/init.d/mysql start --mysqld --skip-grant-tables (linux)
打开另外一个命令窗口,进入mysql的交互界面,密码随便输入。
用update语句设置密码(此时不能用set password语句)。
验证密码修改是否成功
前段时间更改mysql中root密码时随意自己弄了一个,也没当会事,10.1回来用的时候才发现自己忘了密码了 从网上搜了下,做了下列总结: 首先在命令行里关闭mysql服务 net stop mysql 然后在命令行里,以不检查权限的方式启动; mysqld --skip-grant-tables 界面会一直停留在那,不用理它。 然后重新开打一个命令提示符的窗口(CMD)用空密码方式使用root用户登录 MySQL; mysql -u root 直接进去了, 修改root用户的密码; mysql update mysql.user set password=PASSWORD('新密码') where User='root'; mysql flush privileges;mysql quit然后 按住键盘上的CTRL + ALT+ DEL 键 ,打开任务管理器,结束mysql-nt进程 将mysql服务关闭重新启动下 然后重新打开命令行界面 mysql -uroot -p 输入你新的密码就OK了; 以上是windows下的mysql的密码破解方法, 下面我讲下linux下的mysql中 在etc/my.cnf的[mysqld]字段加入: skip-grant-tables 重启mysql服务,这时的mysql不需要密码即可登录数据库 然后进入mysql mysqluse mysql; mysqlupdate user set password=password('新密码') WHERE User='root'; 运行之后最后去掉etc/my.cnf中的skip-grant-tables,重启mysqld即可
1.停止mysqld服务
[root@Server]# service mysqld stop
2.以跳过授权的方式启动mysql
[root@Server]# mysqld_safe --skip-grant-tables &
3.以root用户登录mysql
[root@Server huage]# mysql -u root
4.进入mysql数据库
mysql> use mysql
5.更新mysql数据库中的user表的root的password字段
mysql> update user set password=PASSWORD("new_password") where User="root";
6.刷新权限,使其立即生效,之后退出mysql,并重新启动mysql
mysql> flush privileges;
mysql> quit
[root@Server]# service mysqld restart