Mysql存储过程:DEFINER =`root` @`%`在localhost中不起作用

Mar*_*ria 5 php mysql stored-procedures

我已经搜索了很多这个问题,但找不到解决方案.

我正在使用存储过程:

DELIMITER $$

CREATE DEFINER=`root`@`%` PROCEDURE `GetImages`(
in search Varchar(80)
)
BEGIN
select  
image_path
from check_images
where checkNumber=search;

END
Run Code Online (Sandbox Code Playgroud)

它无法在localhost中工作并获得以下错误:

错误号码:1449

指定为定义者的用户('root'@'%')不存在

但如果我用"localhost"('root'@'localhost')替换%sign,那么一切都很完美.此外,我不允许更改存储过程.那么请告诉我如何克服这个问题的最佳解决方案.

我会感激任何帮助.

谢谢

Mik*_*ant 8

消息很清楚,用户不存在.

在MySQL中,用户帐户由用户名和主机定义组件组成.

将定义者更改为'root'@'localhost'或创建用户'root'@'%'