19,622
社区成员




我刚刚装好了mysql后.用mysql -u root登陆进去了.然后我修改了user表中的root的密码:
UPDATE user SET password='新密码' where user='root';
然后我重启了mysql.
后来用mysql -u root -p
在输入密码后报错为:ERROR 1045 (): Access denied for user: 'root@localhost' (Using password: YES)
这是怎么回事啊.
教教我吧.多谢
1.sudo修改 但是没有这个命令 但是可以用net stop mysql
我已经解决问题了,我是在以cmdMySQL的bin目录下进行mysqladmin命令对root进行设置密码然后root对localhost没有访问权限
我是基于window10 mysql-5.7.33版本对其进行修改
https://zhuanlan.zhihu.com/p/442759047知乎上找到方法
1 sudo命令无法使用 所以停止mysql服务使用 net stop mysql
2基于上个cmd窗口再新开窗口
以管理员身份新开cmd,进入mysql安装的bin目录后执行:
mysqld --console --skip-grant-tables --shared-memory
此时,命令行框会处于持续运行状态:
3、保持上述的窗口(切记),再以管理员身份新开cmd,执行:
mysql -uroot -p
这时就已经绕过密码登录进入mysql了。
4、接下来修改root的密码为空
UPDATE mysql.user SET authentication_string='' WHERE user='root';
5、此时关闭所有命令行界面,正常开启MySQL服务后进行登录,无需密码即可进入成功。
但是但是我又出问题了
Can't connect to MySQL server on 'localhost' (10061)
即无法连接MySQL
然后我又不断尝试后发现用net start MySQL就可以重新无密码登录了
https://www.jb51.net/article/26505.htm
这个博主写的也非常不错
这是我第一次写帖子,还是站在各位前辈的肩膀上解决问题,在此对前辈们表示敬意
就这样 over
少执行了FLUSH PRIVILEGES;语句,update执行后刷新下,不用重启mysql就可以登录
请问还有别的方法吗
可能是因为你修改密码时没有刷新权限表,导致密码修改没有生效。你可以尝试以下步骤:
停止 MySQL 服务:sudo service mysql stop
以跳过权限表的方式启动 MySQL:sudo mysqld_safe --skip-grant-tables &
以管理员身份登录 MySQL:mysql -u root
刷新权限表:FLUSH PRIVILEGES;
修改密码:UPDATE user SET password='新密码' where user='root';
退出 MySQL:exit;
停止 MySQL 服务:sudo service mysql stop
重新启动 MySQL 服务:sudo service mysql start