问题现象
因为忘记账户密码,所以使用了 skip-grant-tables 功能登入数据库,在修改root密码时,系统提示了以下错误
原因分析
当 MySQL 以 --skip-grant-tables 选项运行时,它不会加载授权表,因此不能执行与账户管理相关的SQL语句,例如 ALTER USER 或 SET PASSWORD 等,如果尝试运行这些语句,就会出现 ERROR 1290 报错。
问题修复
- 重新加载授权表到MySQL服务器。
FLUSH PRIVILEGES;
- 重新执行密码修改语句
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';