linux下mysql的root密码忘记的解决方法
(1)停止mysql服务
# /etc/init.d/mysql stop
(2)设置数据库启动的时候 跳跃权限表的限制,不用验证密码,直接登录,并将其打入后台运行。
# mysqld_safe --user=mysql --skip-grant-tables--skip-networking &
(3)不用密码进入数据库,修改user表中root的密码。
# mysql -u root
mysql> use mysql;
mysql> update user setpassword=password('newpassword') where user='root';
mysql> flush privileges;
mysql> quit
(4)重启mysql。重启时,skip-grant-tables就被终止了。之后进入数据库,就需要输入刚才修改的密码了。
# /etc/init.d/mysql restart
# mysql -uroot –p
enter password:
过程如下图所示:
当上述方法执行时,出现如下错误
ERROR 1045 (28000):
可能是数据库中存在空用户所致,具体解决方法可参照 http://www.jb51.net/article/82421.htm。