本文档所使用的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测试密码连接的图来镇楼
Windows10系统中忘记MySQL数据库root权限登录密码-LMLPHP

04-21 19:14