Il codice sorgente per le stored procedure che sono state carico probabilmente contiene "DEFINER = root @ '%'" come parte della definizione - guardando un po 'come questo:
create definer='root'@'%' procedure sp_test() begin end;
Il problema ecco che non hai un account sul tuo sistema per 'root' @ '%'. Questo può essere facilmente dimostrato. Dalla riga di comando di MySQL:
show grants for 'root'@'%';
Mi aspetto che questo tornerà con un messaggio di errore:
ERROR 1141 (42000): There is no such grant defined for user 'root' on host '%'
La correzione è di alterare la fonte di stored procedure, o per creare l'account mancante :
grant all on *.* to 'root'@'%' identified by 'password' with grant option;
non è generalmente una buona idea avere un account molto alta potenza accessibile da qualsiasi luogo, ma questa è un'altra storia.
+1 bello! Avevo il sospetto che avesse a che fare con le specifiche dell'host nel nome utente. Vedremo se lo farà. –