Votre deuxième tentative est la bonne approche :
GRANT EXECUTE ON PROCEDURE myDB.spName TO 'TestUser'@'localhost';
mais si cela ne fonctionne pas, vérifiez...
a) vous (l'utilisateur à partir duquel vous exécutez toutes ces commandes) avez des droits d'octroi [c'est-à-dire AVEC OPTION D'ACCORD]. Si vous êtes root, vous disposez des droits d'octroi.
b) l'utilisateur auquel vous accordez l'autorisation d'exécution existe, par exemple
select user from mysql.user where user like 'test%';
Si ce n'est pas le cas, créez l'utilisateur, par exemple
CREATE USER 'TestUser'@'localhost' IDENTIFIED BY 'passwordxxxx';
#depending on your needs
GRANT SELECT,DELETE,UPDATE PRIVILEGES ON myDb.* TO 'TestUser'@'localhost';
J'espère que cela vous aidera :)