修改账户密码时提示 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 错误

发布时间 2024-01-04 16:56:07作者: 505donkey

问题现象

因为忘记账户密码,所以使用了 skip-grant-tables 功能登入数据库,在修改root密码时,系统提示了以下错误
image

原因分析

当 MySQL 以 --skip-grant-tables 选项运行时,它不会加载授权表,因此不能执行与账户管理相关的SQL语句,例如 ALTER USER 或 SET PASSWORD 等,如果尝试运行这些语句,就会出现 ERROR 1290 报错。

问题修复

  1. 重新加载授权表到MySQL服务器。
    FLUSH PRIVILEGES;
    
  2. 重新执行密码修改语句
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';