2013-11-27 67 views
5

我已經在這個問題上搜索了很多,但找不到解決方案。Mysql Stored Proceedure:DEFINER =`root` @`%`在localhost中不工作

我使用存儲過程:

DELIMITER $$ 

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

END 

它不是在本地主機工作,並得到以下錯誤:

Error Number: 1449

The user specified as a definer ('root'@'%') does not exist

但如果我代替%符號與「本地主機」(「根」 @ 'localhost'),那麼一切都很完美。此外,我不允許更改存儲過程。所以請告訴我最好的解決方案,我該如何克服這個問題。

我會很感激任何幫助。

謝謝

回答

7

消息很明顯,用戶不存在。

在MySQL中,用戶帳戶由用戶名和主機定義組件組成。

要麼改變定義者'root'@'localhost'或創建一個用戶,'root'@'%'

+0

非常感謝你的快速回復。 我想選擇第二個選項,創建用戶。你能給我提示一下,我可以爲'root'@'%'創建用戶嗎? – Maria

+1

太好了,你幫了我很多,我修好了,因爲你。非常感謝你 – Maria

+0

@ user3043360很高興​​提供幫助。我應該注意到,通常從本地主機以外的任何地方設置root訪問權限都被視爲安全漏洞。真的,在大多數情況下,應用程序不應該使用'root',而應該定義特定於應用程序的用戶。 –