MySQL 授予新用户权限会删除登录权限

MySQL granting privileges for a new user removes ability to log in

发生的问题是 MySQL 不允许我创建用户然后授予其权限。按照网站的指示进行操作:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

->     WITH GRANT OPTION;

查找其授权的结果是这样的:

mysql> 
SHOW GRANTS FOR 'monty'@'localhost';

+-------------------------------------------+
| Grants for monty@localhost                |
+-------------------------------------------+
| GRANT USAGE ON *.* TO 'monty'@'localhost' |
+-------------------------------------------+

我可以登录 monty,但没有任何权限,没有 CREATE、SELECT 等

(回到root用户) 我尝试 'FLUSH PRIVILEGES' 认为它会 'flush' 授权 table,但没有任何反应,授权 table 也没有更新。现在,当我再次尝试登录 monty 时,出现此错误:

ERROR 1524 (HY000): Plugin '*BF06A06D69EC935E85659FCDED1F6A80426ABD3B' is not loaded

(由FLUSH PRIVILEGES命令引起)

对于为什么会发生这种情况有什么建议吗?我认为我的设置有问题,但我不确定。

额外信息:

使用USER()或CURRENT_USER()时,显示为root@localhost。 SHOW GRANTS 按预期显示 "GRANT ALL PRIVILEGES ON . TO 'root'@'localhost' WITH GRANT OPTION" 和 "GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION"。所以所有权限授予都在那里。

当我尝试 "SELECT user, password FROM mysql.user;" 时,密码栏下没有显示 'monty'。

编辑:已解决检查下面我的解决方案。

试试这个,

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

问题是,虽然我安装了最新版本的 MySQL,但由于某些原因,mysql.user 仍然使用旧的 MySQL table。通过 运行 mysql.upgrade,它更新了 mysql.user tables,可以通过删除 'password' 列看到。