本文档所使用的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测试密码连接的图来镇楼