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

时间:2013-11-27 20:15:36

标签: 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

它无法在localhost中运行并且出现以下错误:

  

错误号码:1449

     

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

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

我会感激任何帮助。

由于

1 个答案:

答案 0 :(得分:8)

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

在MySQL中,用户帐户包含用户名和主机定义组件。

将定义者更改为'root'@'localhost'或为'root'@'%'

创建用户