看到网上的教程是说不存在这样开启了远程访问的 root 用户,需要去刷新一下权限:

grant all privileges on *.* to 'root'@'%' identified by ".";
flush privileges;

select host,user,password from mysql.user;

这个情况是有可能的,就是增加了一个 'root'@'%' 但没有给相关数据库和表的操作权限。

我的情况是,我在 Navicat 上登录的是另外一个用户,比如 'molly'@'%'。此时只需要修改一下 definer 值就好:

修改存储过程默认的 definer