mysql重置 root 用户密码。

Linux下默认安装了mysql,默认root用户密码为空。

于是设置了root用户的密码,使用了错误的命令如下:

mysql> update user set password=123456 where user="root";

(正确为mysql> update user set password=‘123456’ where user=‘root’;     //注意单引号)

然后刷新 flush privilege;结果exit/quit退出mysql重新使用root用户登录时,一直提示密码错误,拒绝访问。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

此时只能使用普通用户进入mysql,由于不是root用户,不能看到mysql数据库,从而无法修改mysql数据库中的user表,无法更改密码。

这时的解决办法为:

1.编辑配置文件跳过登录验证。

vim /etc/my.cnf (注:windows下修改的是my.ini)

在mysql内添加一行:

skip-grant-table

保存退出重启mysql使配置生效。

2.重新设置root用户密码。

使用mysql 命令进入mysql,这时因为设置了跳过登录验证,所以进入的是root用户且不需要root密码。

进入mysql数据库,修改mysql数据库内user表内root的密码 password字段。

update user set password=password("123456") where user="root";

flush privileges;

然后为了安全再回到配置文件中,将添加的一行skip-grant-table去掉或者注释掉(#)。重启mysql。

尝试使用mysql -u root -p 输入密码登录,成功。

猜你喜欢

转载自blog.csdn.net/Tang_shui/article/details/83274994