指定为定义者的MySQL用户不存在

use*_*935 3 php mysql web

我试图用PHP调用存储过程.前一天这是有效的,但今天我收到一个错误"用户指定为定义者('用户名'@'前一天我的IP')不存在"

该过程位于主机中,我通过cpanel的远程MySql授予我的ip访问权限.我使用的代码是正确的,并从这里获取http://www.php.net/manual/en/mysqli.quickstart.stored-procedures.php

是否因为我的ip今天不同而发生错误,即使我再次访问?我怎么解决呢?

Poo*_*ars 7

如果您在使用mysql数据库时发现以下错误:指定为定义者的用户('root'@'%')不存在那么您可以使用以下命令解决它:

   grant all on *.* to 'root'@'%' identified by 'password' with grant option; 
Run Code Online (Sandbox Code Playgroud)

感谢http://www.lynnnayko.com/2010/07/mysql-user-specified-as-definer-root.html


sid*_*eks 2

创建该过程的用户必须已被删除。由于您的用户 ID 已映射到 IP 地址,因此 IP 的更改很可能是原因。如果您可以重新创建用户,那就可以了。

或者,试试这个:

grant all on *.* to 'root'@'%' identified by 'password' with grant option;
Run Code Online (Sandbox Code Playgroud)

这是一种稍微不安全的处理方式,但如果只是本地业务,那么这应该不是问题。

来源:http ://www.lynnnayko.com/2010/07/mysql-user-specified-as-definer-root.html