Erreur: 1449, “L'utilisateur spécifié comme un définisseur ('root'@'localhost') n'existe pas”

J'obtiens l'erreur ci-dessus lorsque j'essaie de récupérer des données ou insérer des données via mon appli pour ma base de données. Le proc code est comme suit

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_createUser`(
    IN p_name VARCHAR(20),
    IN p_username VARCHAR(20),
    IN p_password VARCHAR(20)
)
BEGIN
    if ( select exists (select 1 from tbl_user where user_username = p_username) ) THEN

        select 'Username Exists !!';

    ELSE

        insert into tbl_user
        (
            user_name,
            user_username,
            user_password
        )
        values
        (
            p_name,
            p_username,
            p_password
        );

    END IF;
END $$
DELIMITER ;

Cependant, lorsque j'exécute la requête suivante dans mon sqlyog elle renvoie un 1:
SELECT EXISTS(SELECT 1 FROM mysql.user WHERE USER = 'root');

Je suis en utilisant XAMPP et Python pour faire mon application.
Merci à l'avance.

Ce n' select host from mysql.user where user = 'root' retour?
Ma conjecture est que c'est en fait root@%, pas root@localhost.
127.0.0.1, ::1 localhost
vouliez-vous dire que le changement soit dans la création de definer ligne?
Je me disais que ça ne serait pas de retour localhost dans la requête. Maintenant, je ne comprends pas pourquoi vous obtenez l'erreur.

OriginalL'auteur Oreo | 2016-07-13