本文档所使用的MySQL版本为MySQL5.7
>> mysqld_safe --skip-grant-tables&mysql -u root mysql
在命令行中使用上面的命令登录MySQL,其中--skip-grant-tables允许用户跳过权限表进行无密码登录
>> UPDATE user SET authentication_string=PASSWORD("new password") WHERE user='root';
>> FLUSH PRIVILEGES;
在命令行中执行上面两条命令,其中第一条为root用户重新设置登录密码,其中new password指的就是新密码。然后执行FLUSH PRIVILEGES;指令,重新加载授权表,使权限或者账户相关的更改立即生效。
在网上一些教程中,上面更新密码的命令经常写作:mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';,执行这条命令时,我在执行这条命令时,出现了一个错误提示:ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’,这个错误提示说,没有在字段列表中找到password这一列,这是因为新版本的MySQL数据库下已经没有password这个字段了,password字段正式改成了authentication_string字段。
放一张Navicat for MySQL测试密码连接的图来镇楼

本文详细描述了如何在MySQL5.7版本中使用`mysqld_safe--skip-grant-tables`绕过权限表进行无密码登录,以及如何更新root用户的密码(将`password`字段替换为`authentication_string`),最后提到新版本中`password`字段已被移除并需要相应调整。

被折叠的 条评论
为什么被折叠?



